根据Listview中的点击替换片段

时间:2014-03-18 20:09:48

标签: java android listview android-fragments

我有Item的列表视图。单击,我想基于列表视图中单击项目的项目位置将我的活动中的一个片段替换为新片段。这样做的方法是什么?我可以在Item上指定一个意图,但我不希望启动新活动,只是更改当前活动中的片段。

2 个答案:

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

您可以通过执行以下操作来实现此目的:

  • 创建您的片段(取决于列表中有多少不同的项目)
  • 然后,使用click事件,获取列表项的位置和
  • 从列表中获取正确的片段并使用片段管理器进行设置。

注意 您可以做的是查看片段是否可以重复使用(取决于用户在单击列表中的项目时希望用户看到的内容。

考虑:

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");

因此,您将根据列表中单击的项目设置正确的片段。

我希望这会有所帮助;

注意:也可以考虑使用接口!