【发布时间】:2015-01-05 14:38:41
【问题描述】:
我有一门课:
public class custumkiemtra extends ArrayAdapter<Cauhoi>{
Context context;
int resource;
List<Cauhoi> ch;
public custumkiemtra(Context context, int resource, List<Cauhoi> ch) {
super(context, resource, ch);
this.context = context;
this.resource = resource;
this.ch = ch;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final RadioButton SDA,SDB,SDC,SDD;
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View viewrow = inflater.inflate(R.layout.custumkiemtra,parent,false);
TextView ndch = (TextView)viewrow.findViewById(R.id.cauhoi);
final Button ndA = (Button)viewrow.findViewById(R.id.DA);
final Button ndB = (Button)viewrow.findViewById(R.id.DB);
final Button ndC = (Button)viewrow.findViewById(R.id.DC);
final Button ndD = (Button)viewrow.findViewById(R.id.DD);
SDA = (RadioButton) viewrow.findViewById(R.id.SUADA);
SDB = (RadioButton) viewrow.findViewById(R.id.SUADB);
SDC = (RadioButton) viewrow.findViewById(R.id.SUADC);
SDD = (RadioButton) viewrow.findViewById(R.id.SUADD);
SDA.setEnabled(false);
SDB.setEnabled(false);
SDC.setEnabled(false);
SDD.setEnabled(false);
final Cauhoi getch = ch.get(position);
ndch.setText("Cau "+ String.valueOf(getch.get_id()) +": " + getch.getNoidung_cauhoi());
ndA.setText(getch.getNoidung_traloi1());
ndB.setText(getch.getNoidung_traloi2());
ndC.setText(getch.getNoidung_traloi3());
ndD.setText(getch.getNoidung_traloi4());
ndA.setTag(getch.get_id());
ndB.setTag(getch.get_id());
ndC.setTag(getch.get_id());
ndD.setTag(getch.get_id());
ndA.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ndA.setBackgroundResource(R.drawable.nutdapanchon);
ndB.setBackgroundResource(R.drawable.nutdapan);
ndC.setBackgroundResource(R.drawable.nutdapan);
ndD.setBackgroundResource(R.drawable.nutdapan);
SDA.setEnabled(true);
SDB.setEnabled(false);
SDC.setEnabled(false);
SDD.setEnabled(false);
}
});
return viewrow;
}
然后我用它为 Listview 创建一个适配器。当我单击按钮 NdA 时,它的背景变为“nutdapanchon”并且 SDA 为“true”,但随后我滚动 ListView 并返回 我的 ndA 背景是“nutdapan”,而 SDA 是“flase”。为什么?如何解决这个问题?请帮帮我?
【问题讨论】:
-
只需使用布尔值使该状态稳定
-
你试过 ViewHolder 模式吗?
-
stackoverflow.com/questions/26190444/… 转到我的答案并使用 View Holder Pattern
-
我尝试但我失败了。有人可以帮我解决这个问题。我只想在单击按钮时更改按钮的背景,并在滚动列表视图时按住它。我很喜欢 listview.setRecyclerListener 但我不知道如何使用它。
标签: android