2012-02-27 56 views
0

我正在从事测验应用。对于每个问题有多个答案等等,我已经使用复选框。在每页我显示单个问题与选项,当下一个按钮被点击下一个问题将被显示。 因此,当用户选择多个答案时,我需要将它们存储在数组列表中,并且需要将所选答案与数据库中的答案进行比较。在我的代码中,我将所选值ID逐个存储,但一次只存储一个值。如何将所有选中的复选框ID存储在我的数组列表中?如何将选中的复选框值存储在android的arraylist中?

我的代码:提前

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(); 
       } 
     } 
    }); 
} 

请帮我对此....谢谢

+1

可能是因为您每次创建新的ArrayList ...我看到一个“selchkboxlist = new ArrayList ()”在for循环中... – 2012-02-27 05:11:08

+0

嗨,感谢你的工作正常 – RaagaSudha 2012-02-27 05:48:47

+0

什么是List3.size()请分享代码..或编辑你的问题..谢谢 – 2016-11-12 05:08:39

回答

1

之前,初始化selchkboxlist for循环....

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(); 
      } 
    } 
}); 

}

+0

嗨,谢谢你它的工作正常...但是当我试图打印我的数组列表我的onclicklistener显示为空...我要去哪里错了? – RaagaSudha 2012-02-27 05:52:42

+0

把一个记录器Log.i(“chk”,chk)放在你的语句之前,把它添加到ArrayList中,看看这个值是否为null ... – 2012-02-27 05:55:49

+0

嗨onclick方法它显示arraylist值,但是当我我试图在onclicklistener方法之外打印一个空数组列表。为什么这样? – RaagaSudha 2012-02-27 06:03:40

0

店sharedPreferences的价值,当你再次需要刚从sharedPreferences检索,做你的任务。

我在我的最后一个项目,其工作...尝试做的人..

相关问题