如何生成动态的单选按钮,在适配器视图一个radiongroup?适配器、视图、单选、按钮

2023-09-07 00:13:26 作者:三生同归

我有一个动态清单。

我要显示该列表在单选按钮适配器视图。在一个组中。

我用:

 公共类Type2Adapter扩展了BaseAdapter {
    上下文语境;
    LayoutInflater充气;
    ArrayList的< QueOption> OPLIST;
    字符串List1中;
    诠释计数;
    RadioGroup中RadioGroup中;
    串点,更多的;
    公共Type2Adapter(上下文的背景下,ArrayList的< QueOption>的ArrayList){
        this.context =背景;
        充气= LayoutInflater.from(上下文);
        OPLIST = ArrayList的;
        数= oplist.size();
        如果(计数> = 1){
            数= oplist.size();
        }其他{
            数= 1;
        }
    }


    @覆盖
    公众诠释getCount将(){
        返回计数;
    }

    @覆盖
    公共对象的getItem(INT位置){
        返回的位置;
    }

    @覆盖
    众长getItemId(INT位置){
        返回的位置;
    }

    @覆盖
    公共查看getView(INT位置,查看convertView,ViewGroup中父){

        ViewHolder持有人;
        如果(convertView == NULL){

            持有人=新ViewHolder();
            convertView = inflater.inflate(R.layout.type2_option,NULL);
// holder.nameList =(单选)convertView.findViewById(R.id.optionRadio);
            holder.layout =(的LinearLayout)convertView.findViewById(R.id.type2);
            RadioGroup中=(RadioGroup中)convertView.findViewById(R.id.optionRadioGroup);
            convertView.setTag(保持器);
        }
        其他{
            支架=(ViewHolder)convertView.getTag();
        }
            holder.layout.setBackgroundResource(R.drawable.list_back_rowcolor);
// holder.nameList.setText(oplist.get(位置).getOptionName());
            单选newRadioButton =新的单选按钮(上下文);
            newRadioButton.setId(位置);
            newRadioButton.setText(oplist.get(位置).getOptionName());
            radiogroup.addView(newRadioButton);

        返回convertView;
    }

    公共类ViewHolder {

        私人的LinearLayout布局;
        私人单选名单;
    }

}
 

XML:

 < XML版本=1.0编码=UTF-8&GT?;
<的LinearLayout
  的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
  机器人:layout_width =FILL_PARENT
  机器人:layout_height =FILL_PARENT>

  <的LinearLayout
    机器人:ID =@ + ID / TYPE2
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =WRAP_CONTENT
    机器人:方向=横向>

        < RadioGroup中
            机器人:ID =@ + ID / optionRadioGroup
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT>


        < / RadioGroup中>

  < / LinearLayout中>

< / LinearLayout中>
 

我应该怎么做才能解决我的问题。

在此先感谢:

解决方案

 < RadioGroup中
            机器人:ID =@ + ID / optionRadioGroup
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT>
   < / RadioGroup中>

//这里我加入6单选按钮。

RGROUP =(RadioGroup中)findViewById(R.id.optionRadioGroup);

的for(int i = 0; I< 6,我++)
{
       RB [我] =新的单选按钮(上下文);
       RB [I] .setText(RDO+ I);
       的rb [I] .setId(ⅰ);
       rgroup.addView(RB [I]);
  }
 
单选按钮动态图表制作 点击选项自动生成数据

I have a Dynamic list..

I want to show that list in adapter view with radio buttons. in one group.

I used:

public class Type2Adapter extends BaseAdapter{
    Context context;    
    LayoutInflater inflater;
    ArrayList<QueOption> oplist;
    String list1;
    int count;
    RadioGroup radiogroup;
    String dot,more;
    public Type2Adapter(Context context,ArrayList<QueOption> arrayList){
        this.context = context;
        inflater = LayoutInflater.from(context);
        oplist = arrayList;
        count = oplist.size();
        if(count>=1){
            count = oplist.size();
        }else{
            count = 1;
        }
    }


    @Override
    public int getCount() {     
        return count;       
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder;      
        if(convertView == null){    

            holder = new ViewHolder();  
            convertView = inflater.inflate(R.layout.type2_option, null);            
//          holder.nameList = (RadioButton)convertView.findViewById(R.id.optionRadio);          
            holder.layout = (LinearLayout)convertView.findViewById(R.id.type2);     
            radiogroup = (RadioGroup)convertView.findViewById(R.id.optionRadioGroup);
            convertView.setTag(holder);
        }
        else{
            holder = (ViewHolder) convertView.getTag();
        }           
            holder.layout.setBackgroundResource(R.drawable.list_back_rowcolor);
//          holder.nameList.setText(oplist.get(position).getOptionName());
            RadioButton newRadioButton = new RadioButton(context);
            newRadioButton.setId(position); 
            newRadioButton.setText(oplist.get(position).getOptionName());           
            radiogroup.addView(newRadioButton); 

        return convertView;
    }

    public class ViewHolder{

        private LinearLayout layout;
        private RadioButton nameList;
    }

}

XMl:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

  <LinearLayout
    android:id="@+id/type2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

        <RadioGroup 
            android:id="@+id/optionRadioGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >  


        </RadioGroup>   

  </LinearLayout>  

</LinearLayout>

what should i do to solve my problem.

Thanks in advance:

解决方案

  <RadioGroup 
            android:id="@+id/optionRadioGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" > 
   </RadioGroup>

//here i am adding 6 radiobutton .

rgroup=(RadioGroup)findViewById(R.id.optionRadioGroup);

for(int i=0; i<6; i++)
{
       rb[i]=new RadioButton(context);
       rb[i].setText("rdo"+i);
       rb[i].setId(i);
       rgroup.addView(rb[i]);           
  }