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