如何在android中的arraylist中存储所选的复选框值?

时间:2012-02-27 05:05:19

标签: android

我正在开展测验应用。对于每个问题,都有多个答案,因此我使用了复选框。在每个页面我显示带有选项的单个问题,当点击下一个按钮时,将显示下一个问题。 因此,当用户选择多个答案时,我需要将它们存储在一个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();
                }
         }
     });
 } 

请帮我解决这个问题....在此先感谢

2 个答案:

答案 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中检索并执行任务时。

我已经完成了我的上一个项目及其工作......试试男人..