2012-02-28 59 views
0

当用户选择它时,我将选中的复选框值存储到arraylist中,并在用户未选中时从同一个数组列表中删除。但是我有这个问题。即例如我选中了复选框0,1,4,6。然后,我取消选中0复选框。但是从arraylist中删除了6个。下次我取消选中第1个位置复选框。但是这次从arraylist中没有被删除。最后,我取消了0和4的检查,但仍然没有任何内容从arraylist中删除。数组0,1,4仍然存在于数组列表中。如何解决这个问题? 我想存储选定的项目并删除未选定的项目。请帮我对此....如何添加和删除所选的复选框ID和Android ArrayList中?

我的代码:

public static ArrayList<String> selchkboxlist = new ArrayList<String>();; 
String chk; 
cbs = new CheckBox[20]; 
for(k=0; k<List.size(); k++) 
{ 
    arr = List.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 cbs = (CheckBox) v ; 
       if (((CheckBox) v).isChecked()) { 
      chk = Integer.toString(v.getId()); 
       selchkboxlist.add(chk); 
      Toast.makeText(Myclass.this, "Selected CheckBox ID" + v.getId(), Toast.LENGTH_SHORT).show(); 
      System.out.println("selected checkboxes"+selchkboxlist); 
      } 
      else 
      { 
       selchkboxlist.remove(chk); 
        Toast.makeText(Myclass.this, "Not selected", Toast.LENGTH_SHORT).show(); 
        System.out.println("un selected checkboxes"+selchkboxlist); 
      } 
      } 
      }); 
    } 

应该心存感激....

+0

尝试使你的ArrayList是静态的。 – Hiral 2012-02-28 05:30:26

回答

0

在第4行......我想你应该有列表大小selchkboxlist。

+0

你能给出更多的答案解释吗?这可能有助于OP更好地理解。 – KLee1 2012-11-13 03:26:37

0

创建一个类,像这样

public class checkboxList 
{ 


    private boolean Checked; 

    public checkboxList(boolean Checked) { 
     super(); 


     this.Checked = Checked; 

    } 
public void setChecked(boolean state) 
    { 
     this.Checked = state; 
    } 
public boolean getChecked() 
{ 
return Checked; 
} 
} 

然后在的onclick方法,你

if (checkBox.isChecked() == true) { 
    checkboxList.get(position).setChecked(true); 
         } 
else { 
    checkboxList.get(position).setChecked(false); 
         } 
+0

嗨,谢谢你的回复。当我给checkboxList.get(position).setChecked(true);它要求在checkboxList类中创建get方法 – RaagaSudha 2012-02-28 05:39:24

+0

我已添加类也checkboxlist类检查它 – user1203673 2012-02-28 05:42:31

+0

您好我添加了公共int getchkposition(){\t返回位置;} public void setchkposition(int position){this.position = position ;}在checkboxlist类...但仍然是要求创建get方法 – RaagaSudha 2012-02-28 05:51:32

相关问题