2012-04-14 14 views
0

私のプロジェクトでは、選択されたチェックボックス値を格納するarraylistを作成しました。つまり、チェックボックスが選択されている場合、arraylistにid値を格納しています。選択されていない場合は、arraylistから削除します。 また、チェックボックスが選択されていないか、そのページで選択されていない場合、私はarraylistに "00"を保存しています。ifとelseifの条件は、コード内でが正常に動作していますが、他の部分は* で動作していません。 *どこが間違っていましたか? ....これに関する空の値をアンドロイドのarraylistに保存する方法は?

マイコードを助けてください:

public static ArrayList<String> selchkboxlist = new ArrayList<String>(); 

cbs[k].setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     if (((CheckBox) v).isChecked()) { 
      selchkboxlist.add(Integer.toString(v.getId())); 
      System.out.println("chkboxlist size" + selchkboxlist.size()); 
      System.out.println("selected checkboxes" + selchkboxlist); 
     } 
     else if(!(((CheckBox) v).isChecked())) 
     { 
      selchkboxlist.remove(Integer.toString(v 
        .getId())); 
      System.out.println("after delete chkboxlist size" + selchkboxlist.size()); 
      System.out.println("un selected checkboxes" + selchkboxlist); 
     } 
     else 
     { 
      selchkboxlist.add("00"); 
      System.out.println("nothing selected selected checkboxes" 
        + selchkboxlist); 
     } 
    } 
}); 
+2

else部分に到達できません...ボックスがチェックされているかどうか、 "else"がありません –

+0

何も選択されていない場合、どのようにデフォルトで値を保存できますか? – RaagaSudha

答えて

1

チェックボックスをチェックし、またはチェックされていないいずれかのため、他のケースが入力されることはありません。

onclickリスナーは、実際にチェックボックスをクリックするまで呼び出されません。

あなたが達成したいことは完全にはわかりませんが、チェックされたチェックボックスのみをチェックされたアイテムのリストに追加することができます。

0

チェックボックスのみをオンまたはオフにすることができるため、コードサンプルではelseステートメントに到達できません。

OnCheckedChangeListenerの代わりに、クリック時に使用します!あなたのチェックボックスを「提出」するときそして、

selchkboxlist.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{ 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     if (isChecked) 
     { 
      //user checked checkbox 
     }else{ 
      //user unchecked checkbox 
     } 
    } 
}); 

は、ユーザーがボックス

場合(チェックボックスを選択していないかどうかを確認するためにあなたのループでは、このチェックを行います。 isChecked()) selchkboxlist.add( "00");