问题描述
您好,我正在尝试创建多个单选按钮,这些单选按钮会根据不同的原因进行分组,并且当用户选择一个单选按钮时,其他单选按钮将变为未选中状态,如下所示
为此,我编写了以下代码,但是由于每个孩子都被创建为自己的单选按钮组,因此我遇到了问题 Activity.xml
<ExpandableListView
android:id="@+id/elv_product_fail_reason"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="?attr/text_color"
android:orientation="vertical"
android:layout_marginTop="15dp"
android:layout_marginLeft="0dp"
android:groupIndicator="@color/transparent">
</ExpandableListView>
Grouplevel.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_job_action_group_level"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:orientation="horizontal"
android:background="?attr/layout_background">
<TextView
android:id="@+id/tv_job_action_group_level_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:textColor="?attr/text_color"
android:textStyle="bold"
android:layout_weight="1000"/>
<ImageView android:src="?attr/icon_expander_group"
android:contentDescription="@string/group_item"
android:id="@+id/image_job_action_group_level_expander"
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_gravity="right"
android:layout_weight="1"/>
childlevel.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_job_action_child_level"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:orientation="vertical"
android:background="?attr/layout_background">
<RadioGroup
android:id="@+id/radiogrp_job_action_child_level"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
适配器片段
public View getChildView(int groupPosition,final int childPosition,boolean isLastChild,View convertView,ViewGroup parent) {
View vi=convertView;
try
{
vi = minflater.inflate(R.layout.layout_job_action_child_level,null);
childHolder = new childView();
childHolder.reasons=vi.findViewById(R.id.radiogrp_job_action_child_level);
HashMap<String,String> map=childDataCollection.get(groupPosition).get(childPosition);
RadioButton radiobutton = new RadioButton(activity);
radiobutton.setPadding(15,0);
radiobutton.setTextColor(R.attr.text_color);
radiobutton.setText(map.get(KEY_REASON_DESCRIPTION));
radiobutton.setId(Integer.valueOf(map.get(KEY_REASON_CODE)));
childHolder.reasons.addView(radiobutton);
}
catch (Exception ex)
{
ACRA.getErrorReporter().handleSilentException(ex);
}
return vi;
}
public View getGroupView(int groupPosition,boolean isExpanded,ViewGroup parent) {
View vi=convertView;
try
{
String groupName = groupDataCollection.get(groupPosition);
if (vi == null) {
vi = minflater.inflate(R.layout.layout_job_action_group_level,null);
groupHolder = new groupView();
groupHolder.expanderImage = (ImageView) vi.findViewById( R.id.image_job_action_group_level_expander);
groupHolder.groupTitle = (TextView) vi.findViewById(R.id.tv_job_action_group_level_title);
vi.setTag(groupHolder);
}
else {
groupHolder = (groupView)vi.getTag();
}
if( groupHolder.expanderImage != null ) {
if( getChildrenCount( groupPosition ) == 0 ) {
groupHolder.expanderImage.setVisibility( View.INVISIBLE );
} else {
groupHolder.expanderImage.setVisibility( View.VISIBLE );
int imageResource;
if (isExpanded) {
if(Global.CURRENT_THEME== settingValue.VALUE_THEME_DARK) {
imageResource = R.drawable.dark_expander_ic_maximized;
} else {
imageResource = R.drawable.light_expander_ic_maximized;
}
} else {
if(Global.CURRENT_THEME== settingValue.VALUE_THEME_DARK) {
imageResource = R.drawable.dark_expander_ic_minimized;
} else {
imageResource = R.drawable.light_expander_ic_minimized;
}
}
groupHolder.expanderImage.setimageResource(imageResource);
}
}
groupHolder.groupTitle.setText(groupDataCollection.get(groupPosition));
}
catch (Exception ex)
{
ACRA.getErrorReporter().handleSilentException(ex);
}
return vi;
}
活动代码段(由于某种原因,列表器也无法正常工作)
elvRadioReasons = (ExpandableListView) findViewById(R.id.elv_product_fail_reason);
elvRadioReasonsAdapter=new AdapterJobAction(groupCINList,dataCollection,elvRadioReasons,this);
elvRadioReasons.setAdapter(elvRadioReasonsAdapter);
elvRadioReasons.setonChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent,View v,int groupPosition,int childPosition,long id) {
initialiseMain(groupPosition,childPosition);
return true;
}
});
请让我知道我哪里出错了
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)