Android如何保存/设置单选按钮的状态,以便单选按钮在滚动列表视图后不会丢失其状态

Android如何保存/设置单选按钮的状态,以便单选按钮在滚动列表视图后不会丢失其状态,android,listview,android-listview,radio-button,radiobuttonlist,Android,Listview,Android Listview,Radio Button,Radiobuttonlist,我目前正在创建一个包含多个单选按钮的列表视图,但当我设置单选按钮值并滚动列表视图时,其状态会发生变化。表示选择了一些随机单选按钮。我的适配器代码是 RadioGroupAdapter.java public RadioGroupAdapter(Context context, int layoutResourceId, Option[] data) { super(context, layoutResourceId, data); this

我目前正在创建一个包含多个单选按钮的列表视图,但当我设置单选按钮值并滚动列表视图时,其状态会发生变化。表示选择了一些随机单选按钮。我的适配器代码是

RadioGroupAdapter.java

public RadioGroupAdapter(Context context, int layoutResourceId,
            Option[] data) {
        super(context, layoutResourceId, data);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.data = data;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        MatrixHolder holder = null;



        if (row == null) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);

            holder = new MatrixHolder();
            holder.txtTitle = (TextView) row.findViewById(R.id.heading);
            holder.group = (RadioGroup) row.findViewById(R.id.radio_group1);
            final RadioButton[] rb = new RadioButton[2];
            for(int i=0; i<2; i++){

                rb[i]  = new RadioButton(context);
               // rb[i].setButtonDrawable(R.drawable.single_radio_chice);
                rb[i].setId(i);
                RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(
                        0, LayoutParams.WRAP_CONTENT);
                params.weight=1.0f;
                params.setMargins(5, 0, 5, 10);
                holder.group.addView(rb[i],params); //the RadioButtons are added to the radioGroup instead of the layout
            }


           // ((MatrixHolder)holder).group.clearCheck();


            row.setTag(holder);
        } else {
            holder = (MatrixHolder) row.getTag();
        }

        Option option = data[position];
        holder.txtTitle.setText(option.title);
        return row;
    }
公共RadioGroupAdapter(上下文上下文,int-layoutResourceId, 选项[]数据){ 超级(上下文、布局资源ID、数据); this.layoutResourceId=layoutResourceId; this.context=上下文; 这个数据=数据; } @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ 视图行=转换视图; MatrixHolder holder=null; if(行==null){ LayoutInflater充气器=((活动)上下文)。getLayoutInflater(); 行=充气机。充气(layoutResourceId,父级,false); holder=新矩阵文件夹(); holder.txtTitle=(TextView)row.findViewById(R.id.heading); holder.group=(RadioGroup)row.findViewById(R.id.radio\u group1); 最终单选按钮[]rb=新单选按钮[2];
对于(inti=0;它可能会帮助您访问:您必须实现一个稀疏布尔数组,是的,在getView()中实现一个带有holder模式的自定义适配器这会有很大帮助。@Pirate Cube:你能告诉我怎么做或如何编写代码吗?看看这个,试试右边的前五个建议问题。兄弟,请建议我修改代码。