使用Expandable listview作为单选按钮

时间:2015-12-31 07:14:23

标签: android listview radio-group

我在我的应用程序中使用了可扩展列表视图。现在我想要做的是用户一次只显示一个项目的孩子.... 如果用户点击第一个项目,则视图应为..

第1项:

单选按钮1

单选按钮2

第2项:

现在,如果点击第一项后用户点击第二项,则应显示..

第1项:

第2项:

单选按钮1

单选按钮2

如何实现这一目标?

适配器的getChildView方法是..

 @Override
public View getChildView(int groupPosition, int childPosition,
                         boolean isLastChild, View convertView, ViewGroup parent) {

    Child child = (Child) getChild(groupPosition, childPosition);
    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) context
                .getSystemService(context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.child_item, null);
    }
    RadioButton rb1 = (RadioButton) convertView.findViewById(R.id.rbtn1);
    RadioButton rb2 = (RadioButton) convertView.findViewById(R.id.rbtn2);



    return convertView;
}

child_item此处包含一个广播组,getGroupView方法是..

 @Override
public View getGroupView(int groupPosition, boolean isExpanded,
                         View convertView, ViewGroup parent) {
    Group group = (Group) getGroup(groupPosition);
    if (convertView == null) {
        LayoutInflater inf = (LayoutInflater) context
                .getSystemService(context.LAYOUT_INFLATER_SERVICE);
        convertView = inf.inflate(R.layout.group_item, null);
    }
    TextView tv = (TextView) convertView.findViewById(R.id.group_name);
    tv.setText(group.getName());
    return convertView;
}

这里的问题是,如果我点击第二个,首先点击,然后第一个和第二个都处于检查状态并显示内容而不是仅显示第二个项目内容.. 我已将CHOICE_MODE设置为Single Choice ..但它没有帮助。

1 个答案:

答案 0 :(得分:0)

即使我不知道任何内置功能,但您可以尝试使用此代码。

func popoverPresentationControllerDidDismissPopover(popoverPresentationController: UIPopoverPresentationController){

}