片段应用程序开发

时间:2017-10-03 07:42:18

标签: android android-layout android-fragments

https://www.journaldev.com/9266/android-fragment-lifecycle#comment-39628

我按照上面的链接在我的Android应用程序中开发片段但是如果这个错误得到解决,iam会在这个特定的片段中被攻击,应用程序将正常工作 你能让我知道我哪里出错吗

enter image description here

enter image description here

在我使用getSupportFragmentManager()

时添加了第二张图片,让每个人都清楚iam面临错误

查看此截图

enter image description here

4 个答案:

答案 0 :(得分:3)

有两种不同类型的碎片:

import android.app.Fragment;
import android.support.v4.app.Fragment;

您必须使用相应的FragmentManagergetFragmentManager()getSupportFragmentManager()

答案 1 :(得分:0)

您正在使用支持库。 TextFragment的引用类是tools_r25.2.3,而不是android.support.v4.app.fragment

您需要使用

getSupportFragmentManager().findFragmentById(id);
祝你好运

埃姆雷

答案 2 :(得分:0)

问题似乎是您正在使用getFrgamentManager(),但正如您在顶部的导入中看到的那样,您使用至少一个支持库,这意味着您的TextFragment可以扩展android.support.v4.app。片段类。

这意味着要使它工作,你需要调用supportFragmentManager而不是常规的FragmentManager。

您可以通过更改:

来完成此操作
TextFragment txt = (TextFragment) getFragmentManager().findFragmentById(R.id.fragment2);

是:

TextFragment txt = (TextFragment) getSupportFragmentManager().findFragmentById(R.id.fragment2);

使用片段时,请确保顶部的导入符合您的预期。使用android.support.v4.app.Fragment时,需要使用supportFragmentManager。

编辑:

在您的编辑和屏幕截图显示时,您无法在ListFragment中调用getSupportFragmentManager()。这意味着您需要这样做:

getActivity().getSupportFragmentManager()

答案 3 :(得分:0)

可以从两个包android.app.Fragmentandroid.support.v4.app.Fragment导入片段,因此我在TextFragmentMenuFragment之间导入类错配。 所以在MenuFragment

中替换
  

导入android.support.v4.app.ListFragment

  

导入android.app.ListFragment

因为可能有classCastEception