我有Item
的列表视图。单击,我想基于列表视图中单击项目的项目位置将我的活动中的一个片段替换为新片段。这样做的方法是什么?我可以在Item
上指定一个意图,但我不希望启动新活动,只是更改当前活动中的片段。
答案 0 :(得分:1)
如果使用适配器显示列表项,则使用标签进行项目视图。
view.setTag(fragmentObject). // each item will hold different fragment
//点击某个项目时,请使用getTag()。
Fragment fragmentObject = (Fragment)view.getTag;
//然后替换现有的片段。
FragmentTransaction.replace(fragmentObject).
http://developer.android.com/reference/android/support/v4/app/FragmentTransaction.html
答案 1 :(得分:0)
您可以通过执行以下操作来实现此目的:
注意强> 您可以做的是查看片段是否可以重复使用(取决于用户在单击列表中的项目时希望用户看到的内容。
考虑:
public List<Fragment> fragments = new ArrayList<Fragment>(){{
add(new FragmentA());
add(new FragmentB());
add(new FragmentC());
}}
现在,在列表的onClick方法中:
public void setFragment(Fragment f, String tag){
//do all the necessary steps here to set fragment
}
setFragment(fragments.get(position), "frag1");
因此,您将根据列表中单击的项目设置正确的片段。
我希望这会有所帮助;
注意:也可以考虑使用接口!