0

私のプロジェクトでは、選択したチェックボックスの値を保存するための配列リストを作成しました。つまり、チェックボックスが選択されている場合は、その id 値を配列リストに保存しています。選択されていない場合は、配列リストから削除しています。また、そのページでチェックボックスが選択されていないか選択されていない場合、arraylist に「00」を格納しています。if 条件と elseif 条件はコードで正常に機能していますが、* else 部分が機能していません.. *どこで間違ったのですか? これに関して私を助けてください....

私のコード:

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

2 に答える 2

1

チェックボックスがオンになっているか、チェックされていないため、elseの場合は入力されません。

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

何を達成したいかは完全にはわかりませんが、チェックされたチェックボックスのみをチェックされた項目のリストに追加することをお勧めします。

于 2012-04-14T10:21:43.963 に答える
0

チェックボックスはオンまたはオフのみ可能で、else ステートメントはコード サンプルでは到達できません。

クリックの代わりに OnCheckedChangeListener を使用します。

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

次に、チェックボックスを「送信」するときに、ループでこのチェックを行い、ユーザーがボックスを選択していないかどうかを確認します

if(!checkbox.isChecked()) selchkboxlist.add("00");

于 2012-04-14T10:26:44.087 に答える