有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    TableFragment正在扩展Fragment的AndroidX版本。托管它需要从AndroidXFragmentActivity扩展的活动

    AppCompatActivity这样做,但出于某种原因,您不希望使用它。这很好,因为您可以从FragmentActivity扩展到您自己

    如果您不希望这样做,则您的活动不能显示TableFragment。您需要TableFragment扩展Fragment的框架版本,该版本已被弃用