【问题标题】:Expandable List View : Single child selection可扩展列表视图:单个子选择
【发布时间】:2013-01-27 19:20:29
【问题描述】:

展开式列表视图中有多个组。我需要在每个中选择一个,即从一组中只选择一个。有没有办法做到这一点?

【问题讨论】:

    标签: android expandablelistview


    【解决方案1】:

    如果我没有理解正确,请纠正我,但您希望从 ExpandableListView 中的每个组中进行选择。

    例如,您有 2 个组:Cats、Dogs,您想选择 1 只猫和 1 只狗。

    这样的话,你需要先在ListView上设置多项选择:

    ExpandableListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    

    然后,当您要选择任何孩子时,请在 OnChildClickListener.onChildClick() 中使用此代码:

    if (groupPosition == 0) // for cats group
    {
         parent.setItemChecked(mCheckedCatPosition, false);
         mCheckedCatPosition = childPosition + 1; // + cats header 
         parent.setItemChecked(mCheckedCatPosition, true);
    }
    else if (groupPosition == 1) // for dogs group
    {
         parent.setItemChecked(mCheckedDogPosition, false);
         mCheckedDogPosition = childPosition + 2 + adapter.getChildrenCount(0); // + cats header + dogs header + number of cats
         parent.setItemChecked(mCheckedDogPosition, true);
    }
    

    【讨论】:

      【解决方案2】:

      在您的 xml 中定义 listview,在另一个 xml 中定义 listview_item,其中包含一个 radio group,然后在您的 java 活动中定义 adapter,该 adapter 为每个 listview_item (listview_row) 获取单选组值

      处理与列表视图非常相似的扩展列表

      【讨论】:

      • 有没有办法使用 BaseExpandableListAdapter 做到这一点?
      • 是的,只需创建一个类并从BaseExpandableListAdapter 扩展它,然后为getChildViewgetChild 上的每个组编写代码
      猜你喜欢
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多