0

まず、次のようなループを使用して、8 つのチェックボックスをすべてオフに設定します。

    for (int i=1;i<8;++i){
    CheckBox view1 = (CheckBox) findViewById(R.id.CheckBox0+String.valueOf(i));
    view1.setChecked(false);
    }

うまくいきませんが、私の言いたいことは理解できます。どうすれば解決できますか?

2 番目: Eclipse でフォーム リストを設定します。アプリケーションが起動するとすぐにキーボードが表示され、編集フィールドにフォーカスされるのはなぜですか? ユーザーが編集フィールドに触れた後にのみキーボードが表示されるようにします。

3 番目: ユーザーがタッチ入力したときにフォーカスが次の編集フィールドに移動しないように、編集フィールドのプロパティを設定する方法。前もって感謝します。

4

3 に答える 3

3

まず、複数の質問をまとめて行うのは良くありません。解決策を 1 つしか知らない場合、人々は答えられなくなります。

1 - ID CheckBox0, CheckBox1, CheckBox2, ... の順序に依存することは非常に危険であり、悪い習慣です。この場合、使用する必要がありますgetIdentifier。これにより、ID CheckBox1、次にCheckBox2などが確実に取得されます。

for (int i=1;i<8;++i){
    CheckBox view1 = (CheckBox) findViewById(getResources().getIdentifier("CheckBox" + i, "id", getPackageName()));
    view1.setChecked(false);
}

2stateHidden -これには修飾子を使用する必要があります。

<activity
    android:name="com.example.NoKeyboardActivity"
    android:windowSoftInputMode="stateHidden" />

3 - これに使用imeOptionsします。actionNone探しているもの、または(コメントに従って)actionDone「完了」ボタンを有効にするものです。

<TextView
    ...
    android:imeOptions="actionNone" />
于 2012-08-15T18:14:25.090 に答える
1

各ビルド後にリソースの ID を固定するには、public.xml でリソースを宣言する必要があります。その後、ID に順番にアクセスできます。ここをチェック

また、R.id.CheckBox0 は int です。

findViewById(R.id.CheckBox0+ i)

public.xml ですべてのチェックボックスを宣言した後

アクティビティ マニフェストの 2 番目の質問には、 android:windowSoftInputMode="stateHidden"を追加します。

3 番目: android:nextFocusDown のレイアウトで同じ edittext を参照する必要があると思います。これがうまくいくかどうかわからないので試してみてください

于 2012-08-15T18:03:13.380 に答える
0

1 - これは Javascript ではなく Java であることを忘れないでください。これを行うことはできません (R.id.CheckBox0+String.valueOf(i))。通常、すべての R.id を内部に含む int の配列を作成し、それらをループします。

2 - android:windowSoftInputMode="stateUnchanged" を使用して、既に表示されているキーボードを非表示にしないこともできます。

3 - これが想定される方法ですが、edittext でプロパティ android:imeOptions="actionNone" を使用できるため、入力ボタンは何もしません。

于 2012-08-15T18:13:46.047 に答える