gpt4 book ai didi

java - Android:添加一个简单的 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:46 25 4
gpt4 key购买 nike

我是 Android 应用程序的新手,所以我希望能在这里找到一些帮助。我已经在这里搜索了我的问题并找到了一些东西,但这不起作用。

我想将 fragment 添加到 FrameLayout,但它不起作用。我的目任何时候的页面/fragment ,所以我有一个始终存在的框架和这个动态变化的页面。但是现在我一直停留在向这个框架添加一个简单 fragment 的一开始(顺便说一句,它已经可以工作了。)

这是我希望的所有相关代码:错误发生在 MainActivity.java (getSupportFragmentManager().beginTransaction().add(R.id.mainFrame, homeFragment).commit();) 它告诉我的地方:

Error:(25, 55) error: no suitable method found for add(int,HomeFragment) method FragmentTransaction.add(Fragment,String) is not applicable (argument mismatch; int cannot be converted to Fragment) method FragmentTransaction.add(int,Fragment) is not applicable (argument mismatch; HomeFragment cannot be converted to Fragment)

我已经尝试将 homeFragment 转换为 Fragment,但这没有用。

主 Activity .java

import android.app.FragmentTransaction;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;


public class MainActivity extends FragmentActivity
{
FragmentTransaction fragmentTransaction;
HomeFragment homeFragment;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

homeFragment = new HomeFragment();
**getSupportFragmentManager().beginTransaction().add(R.id.mainFrame, homeFragment).commit();**
}

activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
tools:ignore="MergeRootFrame" >

<FrameLayout
android:id = "@+id/mainFrame"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:layout_marginBottom = "@dimen/bottom_Main_Tabs">
</FrameLayout>

[...]

</FrameLayout>

fragment _home.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.HomeFragment"> // it is not really com.example...

<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment" />

</FrameLayout>

HomeFragment.java(一切都是自动生成的,但我已经剪掉了一些东西)

public class HomeFragment extends Fragment
{
private OnFragmentInteractionListener mListener;


public static HomeFragment newInstance()
{
HomeFragment fragment = new HomeFragment();
return fragment; // not really neccessary, because it Have shortened it
}

public HomeFragment()
{
// Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_home, container, false);
}

// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri)
{
if (mListener != null)
{
mListener.onFragmentInteraction(uri);
}
}

@Override
public void onAttach(Activity activity)
{
super.onAttach(activity);
try
{
mListener = (OnFragmentInteractionListener) activity;
}
catch (ClassCastException e)
{
throw new ClassCastException(activity.toString()
+ " must implement OnFragmentInteractionListener");
}
}

@Override
public void onDetach()
{
super.onDetach();
mListener = null;
}

public interface OnFragmentInteractionListener
{
// TODO: Update argument type and name
public void onFragmentInteraction(Uri uri);
}

}

有人可以帮帮我吗?

约翰

最佳答案

您混淆了支持库中的类和仅适用于较新版本操作系统的新类。

例如,您导入 android.app.FragmentTransaction(适用于 API 11+),但调用 getSupportFragmentManager().beginTransaction() 返回 android .support.v4.app.FragmentTransaction ...

您需要导入 android.support.v4.app.FragmentTransaction 并确保您的 HomeFragment 扩展 android.support.v4.app.Fragment 而不是 android.app.Fragment

关于java - Android:添加一个简单的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25744681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com