导航抽屉项目一次又一次地单击更新子片段

时间:2014-04-30 21:37:34

标签: android

在导航抽屉中,我有一个带有列表视图的子片段。通过第一次单击抽屉项目,将显示列表视图,但是当通过单击同一抽屉项目关闭并重新打开抽屉时,子片段中的列表视图会更新,即在子片段的列表视图中添加新列表项目列表视图的先前值..请帮助..我被卡住了

int select=0;
select=position-2;
        String sendto =list.get(position-2).getIMEI();
        String sendtoname=list.get(position-2).getName();
        System.out.println(deviceIMEI+"--"+sendto+sendtoname);
    Fragment fragment = new ChatFrag();
    Bundle args1 = new Bundle();
    args1.putString(ChatFrag.MYIEMI, deviceIMEI);
    args1.putString(ChatFrag.SENDERIEMI, sendto);
    args1.putString(ChatFrag.SENDERNAME,sendtoname);
    args1.putInt(ChatFrag.SELECT, select);
    fragment.setArguments(args1);
    fm.beginTransaction()
    .replace(R.id.content_frame, fragment)
    .commit();

这是代码..请帮助如何记住索引..

1 个答案:

答案 0 :(得分:0)

原因是,当点击列表中的某个项目时,将调用Drawer ListView onItemClick。这是ListView的行为。

解决此问题的一种方法是记住last selected index并避免在下次Fragment时再次添加if the selected index is same as last selected

另一种方法是检查FragmentManager是否已添加Fragment

    List<Fragment> fragmentList = getSupportFragmentManager().getFragments();

    if(fragmentList != null) {
        for (Fragment fragment : fragmentList) {
            if (fragment != null && fragment instanceof CustomFragment) {
                // don't add the fragment again
            }else{
            // add the fragment here
        }
    }