23

私はPreferenceActivity自分のAndroidアプリケーションで好みを持っていました。「pref1」がチェックされていない場合は「pref2」を有効にし、「pref1」をチェックした場合は「pref2」を無効にします。android:dependancyつまり、属性の正反対です。

どうやってやるの?

4

4 に答える 4

97

はい、箱から出してこれを行うことは可能です。pref1がオフ
のときにpref2を無効にしたいとします。これがpref1に入力するコード(preferencexmlレイアウト)です。

<CheckBoxPreference
    android:title="Pref1"
    android:key="pref1">
</CheckBoxPreference>

pref2に挿入するコード(preferencexmlレイアウト)は次のとおりです。

<EditTextPreference
    android:dialogMessage="Pref 2 dialog"
    android:title="Pref2"
    android:key="pref2" 
    android:dependency="pref1">
</EditTextPreference>

sigmazero13が言ったように、デフォルトではdisableDependentsStateはfalseであるため、pref1属性に含める必要はありません。

于 2011-06-23T15:03:25.707 に答える
31

こちらのドキュメントによると、次のようにCheckBoxPreferenceタグに属性を追加できます。

android:disableDependentsState="true"

デフォルトではこれはfalseです。これは、チェックボックスがオフになっている場合は扶養家族が無効になっていることを意味しますが、trueに設定すると、逆の効果が得られます。

于 2011-05-15T22:15:29.937 に答える
9

dependancyすぐに使えるソリューション、つまり反転属性はないと思います。しかし、常にクリックリスナーがあります。

preference1.setOnPreferenceClickListener(pref1_click);

....

private OnPreferenceClickListener pref1_click = new OnPreferenceClickListener() {
    public boolean onPreferenceClick(Preference preference) {
        preference2.setEnabled(!preference1.isChecked());
        return true;
    }
}
于 2010-04-20T06:15:28.950 に答える
0

Androidチェックボックス??


Android.widget.checkBoxを使用していると想定しています。

http://developer.android.com/reference/android/widget/CheckBox.html

これを試して

 public class MyActivity extends Activity {
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);

         setContentView(R.layout.content_layout_id);

         final CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkbox_id);
         if (checkBox1.isChecked()) {
             checkBox2.setChecked(false);
         }
     }
 }

幸運を!!

于 2010-04-20T06:17:42.157 に答える