Android Fragment onClick 按钮打开具有相同活动的新 Fragment

Posted

技术标签:

【中文标题】Android Fragment onClick 按钮打开具有相同活动的新 Fragment【英文标题】:Android Fragment onClick button open new Fragment with same activity 【发布时间】: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 【参考方案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 上下文...

以上是关于Android Fragment onClick 按钮打开具有相同活动的新 Fragment的主要内容,如果未能解决你的问题,请参考以下文章

调用onclick时Android从Fragment更改Tab

Android 应用程序崩溃(片段和 xml onclick)

Android Fragment跳转到Activity的方法

Android的Fragment错误,commit 执行了一次,执行第二次报错 ?

尝试在片段中实现 OnClick 侦听器 [重复]

android 怎么开启fragment