【问题标题】:Android Fragment onClick button open new Fragment with same activityAndroid Fragment onClick 按钮打开具有相同活动的新 Fragment
【发布时间】:2019-03-06 11:38:11
【问题描述】:

我有一个活动,它启动一个名为主页的片段。此页面有带按钮的卡片,每个按钮都会打开一个新片段。问题是,当它打开一个新片段时,它似乎启动了一个新的 Activity,它不是主要的,一开始就启动了。出于这个原因,我在主页上的工具栏不会出现在从主片段单击打开的其他页面上。

有谁知道如何使它不改变第一个 Activity 或至少如何从其他片段访问它。当我从这些片段中尝试getActivity()getContext() 时,最初加载的活动永远不会相同。

顺便说一句,第一个 Activity 扩展了 AppCompactActivity

AppActivity activity = (AppActivity) v.getContext();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.drawer_layout, myFragment).addToBackStack("string").commit();

(点击时出现在主片段中)

【问题讨论】:

  • 请发布您的代码
  • 不幸的是,由于其他原因,我无法发布整个代码,但我可以在主要片段中展示我所拥有的内容:
  • 是的,显示你的按钮点击和你的xml
  • 更新问题
  • 显示你的 mainactivity xml

标签: android android-fragments android-activity android-toolbar android-fragmentactivity


【解决方案1】:

使用下面的代码我希望这能解决你的问题...

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
      FragmentEntityManagementPage  fragmentEntitymanagementPage = new FragmentEntityManagementPage();
        fragmentTransaction.add(R.id.rl_container1, fragmentEntitymanagementPage);
        fragmentTransaction.addToBackStack("FragmentEntityManagementPage");
        fragmentTransaction.commit();

【讨论】:

  • 谢谢,这个 fragmentEntitymanagementPage 到底是什么?在我的代码中哪里可以找到它?
  • 这是您的目标片段名称或第二个片段名称,您希望在单击按钮后共享数据。
  • 谢谢,所以我确实将它添加到我的代码中:FragmentTransaction fragmentTransaction = activity.getSupportFragmentManager().beginTransaction(); fragmentTransaction.add(R.id.drawer_layout, myFragment); fragmentTransaction.addToBackStack("FragmentEntityManagementPage"); fragmentTransaction.commit();但问题仍然与我之前创建的 Activity 相关,但它与我在 Start 上的 Activity 不同...
  • 因为我之前有:AppActivity activity = (AppActivity) v.getContext();我如何获得第一个 Activity 的问题?
  • 问题我不允许分享,但我可以说 AppACtivity 有 getApplicationContext() - MyApp 上下文但 Fragment 有 AppACtivity 上下文...
猜你喜欢
  • 1970-01-01
  • 2014-02-07
  • 2020-02-19
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 1970-01-01
相关资源
最近更新 更多