我目前正在处理一个处理片段的应用。在我的一个片段中,我需要一个OnClickListener
,只要点击它就会膨胀另一个片段。我的主要活动是通常在片段之间切换的那个,所以有没有办法让我的应用程序用我想要的那个替换我当前的片段?这就是我目前在片段之间切换的方式:
fragmentClass = home_fragment.class;
try {
fragment = (android.support.v4.app.Fragment) fragmentClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
fragmentManager.beginTransaction().replace(R.id.flContent,fragment).addToBackStack(null).commit();
非常感谢任何帮助。
编辑:我发现其他人有同样的问题,他们只是重新创建了fragmentManager。这是一个很好的方法吗?我觉得应用程序最终会在片段之间切换时感到困惑。答案 0 :(得分:2)
我相信你可以通过在片段上定义接口并在活动上实现它来实现这一点,让片段onClick方法触发由activity实现的侦听器来更改片段。这必须像点击项目片段和警报活动上的列表项一样,用细节片段替换项目片段,以显示有关所选项目的详细信息。
检查以获取更多实施细节: https://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity
答案 1 :(得分:0)
在我的片段中,我找到了一种方法来调用上一个活动中的方法:
((Home)getActivity()).ChangeFragment(profile_fragment.class,user);
ChangeFragment
是为我更改片段的方法。所以我只是传入我要切换到的片段类,瞧!它有效!