33

私が作成しているプログラムには、ユーザーが基本的に多くのブール値を理解しようとしているいくつかのビューがあります。奇妙に聞こえますが、私が言いたいのは、私のデバイスがBluetooth経由で別のデバイスに接続し、そのデバイスのステータスを読み取るということです。基本的に、そのデバイスの現在のステータスのチェックリストを表示します。そのため、そのデバイスが実行していることに応じて、さまざまなチェックボックスがオンになります。すべてのチェックボックスを選択不可にする方法はありますか?

さらに良いことに、これをXMLファイルにハードコードする方法はありますか?

4

4 に答える 4

64

android:clickableチェックボックスに xml 属性を 使用することを検討しましたか?

ドキュメントから:

このビューがクリック イベントに反応するかどうかを定義します。

クリック イベントに反応できない場合は、事実上チェック不能になります。

于 2012-06-26T18:30:36.427 に答える
14
<CheckBox
        android:id="@+id/blahblah"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:enabled="false" />

そしてあなたのコードであなたは呼び出すことができますcbox.setChecked(boolean)

于 2012-06-26T18:30:11.953 に答える
10

クロコボーイとニコラス・ハウスチャイルドが言ったことを拡張します。

XMLでこれを設定する

    android:enabled="false" 

ボタン/チェックボックスをグレー表示にして、無効であることを示します

これを行う別の方法は、次のように設定することです。

    android:clickable="false"

これは、赤の RadioButton を作成するコードであり、(コードで) チェックすると緑に変わりますが、ユーザーがチェックすることはできません。

    android:checked="false"
    android:textColor="#d1d2d4"
    android:buttonTint="#d1202d"
    android:textColorHighlight="#248d51"
    android:clickable="false"

そして、ここにそれをチェックするコードがあります(これはJSONを使用しています:だから、english=="yes"かどうかをチェックしています)

    String yes = "yes";
    if(yourObject.english.equals(yes)) {
        if (m_english.isChecked()) {/*do nothing */}
        else m_english.toggle();
    } 
于 2016-03-24T13:14:44.253 に答える
9

これをチェックしてください:http://developer.android.com/reference/android/widget/CheckBox.html

を使用checkbox.setEnabled(false)して選択不可にすることができます。

XMLでこれを試してください:android:enabled="false"

おそらく非推奨ですが、ターゲット SDK によっては機能する場合があります。

それが役立つことを願っています!

于 2012-06-26T18:33:17.280 に答える