私はPreferenceActivity
自分のAndroidアプリケーションで好みを持っていました。「pref1」がチェックされていない場合は「pref2」を有効にし、「pref1」をチェックした場合は「pref2」を無効にします。android:dependancy
つまり、属性の正反対です。
どうやってやるの?
私はPreferenceActivity
自分のAndroidアプリケーションで好みを持っていました。「pref1」がチェックされていない場合は「pref2」を有効にし、「pref1」をチェックした場合は「pref2」を無効にします。android:dependancy
つまり、属性の正反対です。
どうやってやるの?
はい、箱から出してこれを行うことは可能です。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属性に含める必要はありません。
こちらのドキュメントによると、次のようにCheckBoxPreferenceタグに属性を追加できます。
android:disableDependentsState="true"
デフォルトではこれはfalseです。これは、チェックボックスがオフになっている場合は扶養家族が無効になっていることを意味しますが、trueに設定すると、逆の効果が得られます。
dependancy
すぐに使えるソリューション、つまり反転属性はないと思います。しかし、常にクリックリスナーがあります。
preference1.setOnPreferenceClickListener(pref1_click);
....
private OnPreferenceClickListener pref1_click = new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
preference2.setEnabled(!preference1.isChecked());
return true;
}
}
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);
}
}
}
幸運を!!