以前选择的单选按钮不起作用

时间:2017-08-01 05:15:50

标签: android android-adapter android-radiobutton

我正在使用json解析,在按钮的单击上我有一个带有listview和单选按钮的警告对话框。列表是动态生成的。默认情况下,选择列表的第一个单选按钮,现在问题是如果我选择第二个项目并关闭对话框,当我打开它时再次显示第一个单选按钮而不是第二个。以下是我的代码可以帮助吗?

适配器

branch2

3 个答案:

答案 0 :(得分:1)

尝试这种方式......

int mSelectedPosition = -1;

public class CustomListAdapterSize extends BaseAdapter{


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

            holder.checks.setChecked(position==mSelectedPosition );

            holder.checks.setOnCheckedChangeListener(new OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if(isChecked)
                    {
                        mSelectedPosition =  position;
                    }
                    else{
                         mSelectedPosition = -1;
                    }
                    notifyDataSetChanged();
                }
            });
            return convertView;


        }
}

答案 1 :(得分:0)

请试试这个。我认为你没有将位置存储到mSelectedPosition

 private int mSelectedPosition = 0;//declare it publically not locally into your adapter
             if (position == mSelectedPosition ) {
                            if (selected == null) {
                                holder.radioBtn.setChecked(true);
                                selected = holder.radioBtn;
                                /*for(int i=0;i<movieItems.size();i++)
                                {
                                    sizenms =  movieItems.get(i).getProViews_Size();
                                }
            */

                            }
                        }

                        holder.radioBtn.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {

                                if (selected != null) {
                                    selected.setChecked(false);
                                }
                          mSelectedPosition =position;
                                holder.radioBtn.setChecked(true);
                                selected = holder.radioBtn;
                                ids = m.getProViews_ID();
                                sizenms = m.getProViews_Size();
                                System.out.println(">>>>>>>>>>>>>" + ids);
                                System.out.println("<<<<<<<<<<<" + sizenms);
                                dialogf.dismiss();
                            }
                        });

答案 2 :(得分:0)

请使用选择模式并在本地存储位置[共享首选项]或使用API​​存储

end

如果有帮助,请告诉我。