0

私のXMLには約136個のチェックボックスがあります。対応するJavaファイルでそれぞれを個別に初期化するという苦労はしたくありません。forループを使用してこれを行うという斬新なアイデアを思いつきましたが、Androidでは許可されませんやれ。onCreate メソッドでコードを試しました。グローバルなものを宣言する必要がありますか? 私はこれがばかげた質問かもしれないとは知りません!

以下は私のコードです:

       CheckBox[] C = new CheckBox[136];
            for(int i=1;i<=136;i++){
               C[i] = (CheckBox) findViewById(R.id.checkBox[i]);
            }

これが有効かどうか、およびその背後にある理由を知りたいです。

エラー: タイプの不一致: CheckBox から CheckBox[] に変換できません

checkBox は解決できないか、フィールドではありません

4

2 に答える 2

2

あなたの XML レイアウトには詳しくありませんが、おそらく 136 個のチェックボックスは必要ないでしょう。代わりに、を使用する必要がありますListViewこの例をここでチェックしてください。

あなたが得たエラーは、その割り当てが構文的に無効だったためです。事前に配列を宣言する必要がありました。実際に値を代入するときは、クラスを再度指定する必要はありません。例えば:

CheckBox[] checkBoxes = new CheckBox[136];
...
checkBoxes[i] = //Whatever you want to assign this.
于 2013-07-17T05:17:52.023 に答える
1

さて、これが作業バージョンです

CheckBox[] C = new CheckBox[136];
// see thepoosh comment, you need to change to this:
for (int i = 0; i < 136; i++) {
   C[i] = (CheckBox) findViewById(checkBox[i]);
}

Type Mismatch が発生する理由がわかりません。しかし、 には配列はありませんR.java

于 2013-07-17T06:25:31.013 に答える