我正在开展测验应用。对于每个问题,都有多个答案,因此我使用了复选框。在每个页面我显示带有选项的单个问题,当点击下一个按钮时,将显示下一个问题。 因此,当用户选择多个答案时,我需要将它们存储在一个arraylist中,并且需要将所选答案与数据库中的答案进行比较。在我的代码中,我将逐个存储所选的值id但是它一次只存储一个值。如何在我的arraylist中存储所有选中的复选框ID?
我的代码:
ArrayList<String> selchkboxlist;
CheckBox[] cbs;
cbs = new CheckBox[20];
for(k=0; k<List3.size(); k++)
{
arr = List3.get(k);
cbs[k] = new CheckBox(getContext());
Rl.addView(cbs[k]);
cbs[k].setText((CharSequence) arr.get(2));
cbs[k].setTextColor(Color.parseColor("#000000"));
cbs[k].setId(k);
cbs[k].setOnClickListener( new View.OnClickListener()
{
public void onClick(View v)
{
CheckBox cb = (CheckBox) v ;
if (((CheckBox) v).isChecked()) {
chk = Integer.toString(v.getId());
selchkboxlist = new ArrayList<String>();
selchkboxlist.add(chk);
Toast.makeText(Select1.this, "Selected CheckBox ID" + v.getId(), Toast.LENGTH_SHORT).show();
} else {
selchkboxlist.remove(chk);
Toast.makeText(Select1.this, "Not selected", Toast.LENGTH_SHORT).show();
}
}
});
}
请帮我解决这个问题....在此先感谢
答案 0 :(得分:1)
在for循环之前初始化selchkboxlist ....
ArrayList<String> selchkboxlist=new ArrayList<String>();
CheckBox[] cbs;
cbs = new CheckBox[20];
for(k=0; k<List3.size(); k++)
{
arr = List3.get(k);
cbs[k] = new CheckBox(getContext());
Rl.addView(cbs[k]);
cbs[k].setText((CharSequence) arr.get(2));
cbs[k].setTextColor(Color.parseColor("#000000"));
cbs[k].setId(k);
cbs[k].setOnClickListener( new View.OnClickListener()
{
public void onClick(View v)
{
CheckBox cb = (CheckBox) v ;
if (((CheckBox) v).isChecked()) {
chk = Integer.toString(v.getId());
selchkboxlist.add(chk);
Toast.makeText(Select1.this, "Selected CheckBox ID" + v.getId(), Toast.LENGTH_SHORT).show();
} else {
selchkboxlist.remove(chk);
Toast.makeText(Select1.this, "Not selected", Toast.LENGTH_SHORT).show();
}
}
});
}
答案 1 :(得分:0)
将值存储在sharedPreferences中,当您需要再次从sharedPreferences中检索并执行任务时。
我已经完成了我的上一个项目及其工作......试试男人..