【发布时间】:2018-10-19 17:07:40
【问题描述】:
我在listview 中有 3 个单选按钮,当我单击第一行上的单选按钮时,当我向下滚动列表视图时,另一个 radiobutton 也被单击。
如何解决?
在第一行点击了单选按钮
也点击了另一行
这是我的适配器代码
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate( R.layout.item_listview, null);
holder.tvAlat = (TextView) convertView.findViewById(R.id.tv_alat);
holder.tvpengecekan = (TextView) convertView.findViewById(R.id.tv_pengecekan);
holder.tvnormal = (TextView) convertView.findViewById(R.id.tv_normal);
convertView.setTag(mPengecekanList.get(position).getId_pengecekan());
holder.baik = (RadioButton) convertView.findViewById(R.id.B);
holder.rusakringan = (RadioButton) convertView.findViewById(R.id.RR);
holder.rusakberat = (RadioButton) convertView.findViewById(R.id.RB);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tvAlat.setText(mPengecekanList.get(position).getNama_alat());
holder.tvpengecekan.setText(mPengecekanList.get(position).getPengecekan());
holder.tvnormal.setText(mPengecekanList.get(position).getNormal());
holder.baik.setTag(position);
holder.rusakringan.setTag(position);
holder.rusakberat.setTag(position);
holder.baik.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
selectedAnswers.set(position, "1");
}});
holder.rusakringan.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
selectedAnswers.set(position, "2");
}});
holder.rusakberat.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
selectedAnswers.set(position, "3");
}});}
【问题讨论】:
-
这是因为回收行为。在 getView 中,您必须指定默认选择的重做按钮。我认为您将选定的答案列表保留在数组中,并且未在列表中指定选定的答案列表将默认单选检查设置为第一个单选
标签: android listview radio-button