尽管在expandableListView中单击了组中的一个项目,为什么两个组的项都突出显示?

时间:2013-10-25 08:55:31

标签: android expandablelistview

我创建了一个带有expandableListView的导航抽屉。我有两个组。(Group-1,Group-2)例如,当我单击(group-1,index-2)时,其视图会突出显示,但(group-2,index-1)视图也会突出显示。这是我的孩子点击监听器:

 // Listview on child click listener
  expListView.setOnChildClickListener(new OnChildClickListener() {

      @Override
      public boolean onChildClick(ExpandableListView parent, View v,
              int groupPosition, int childPosition, long id) {
          Toast.makeText(
                  getApplicationContext(),
                  listDataHeader.get(groupPosition)
                          + " : "
                          + listDataChild.get(
                                  listDataHeader.get(groupPosition)).get(
                                  childPosition), Toast.LENGTH_SHORT)
                  .show();    

        int index = parent.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));
     parent.setItemChecked(index, true);


    mDrawerLayout.closeDrawer(expListView);
          return false;
      }
  });

我为什么要这样做?为什么两个组项都被突出显示?

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。我使用v.setSelected(true);代替int index = parent.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition)); parent.setItemChecked(index, true);

现在它运行我想要的。单击(group-1,index-2)时,其视图将突出显示,并且(group-2,index-1)或其他组的索引不会更改。