java如何在活动中打开片段(非应用兼容性)?
正如标题所述,我想打开一个片段,它位于活动(非活动)中
代码:
TableFragment fragment = new TableFragment();
fragment.setArguments(bundle);
View view = (View) findViewById(R.id.Example);
AppCompatActivity activity = (AppCompatActivity) view.getContext().getApplicationContext();
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.idFragment, fragment);
ft.commit();
错误:由以下原因引起:
java.lang.ClassCastException: 安卓.app.Application cannot be cast to 安卓x.appcompat.app.AppCompatActivity
也尝试过:
Activity activity = (Activity) this;
FragmentManager fragmentManager = activity.getFragmentManager();
FragmentTransaction ft= fragmentManager.beginTransaction();
TableFragment fragment = new TableFragment();
ft.replace(R.id.idFragment, fragment);
ft.commit();
错误:
Required type: 安卓x.fragment.app.FragmentTransaction
Provided: 安卓.app.FragmentTransaction
问题:如何在活动(非活动)中打开片段
# 1 楼答案
TableFragment
正在扩展Fragment
的AndroidX版本。托管它需要从AndroidXFragmentActivity
扩展的活动AppCompatActivity
这样做,但出于某种原因,您不希望使用它。这很好,因为您可以从FragmentActivity
扩展到您自己如果您不希望这样做,则您的活动不能显示
TableFragment
。您需要TableFragment
扩展Fragment
的框架版本,该版本已被弃用