3

true の場合は 1 つの子をアクティブにするプライマリ ブール値の設定がありますが、false の場合は子 a が無効になり、子 B がアクティブになります。

すなわち;

if (ParentSetting == true) activate childSettingB elseIf(ParentSetting == false) activate childSettingB

xml タグに依存関係を持たせる方法は知っていますが、特定の子設定に対して逆の関係を持つことは可能ですか?

ありがとうございました

ps。できればXMLでやりたい...

4

2 に答える 2

10

android:disableDependentsState="true"CheckBoxPreference でを使用する

例えば:

<CheckBoxPreference
        android:key="cb_key"
        android:title="@string/stop_service"
        android:summaryOn="On
        android:summaryOff="Off"
        android:defaultValue="false"
        android:disableDependentsState="true" />
   <Preference
        android:key="pref_key"
        android:title="pref_title"
        android:summary="pref_summary"
        android:dependency="cb_key" />

このようにして、CheckBoxPreference が ON の場合は Preference が無効になり、その逆も同様です。

于 2015-02-20T08:29:20.760 に答える
6

xml だけでこれを実現する方法はありません。

親 (依存されている設定) で android:disableDependentsState="true" を使用すると、依存関係を逆にすることができますが、両方の子設定になります。これはあなたが望むものではありません。 disableDependentsState

唯一の方法は、プログラムで行うことです。あなたはおそらくすでにその方法を知っています。

SwitchPreference dependee = (SwitchPreference) findPreference("dependee");
dependent2.setEnabled(!dependee.isChecked());
dependee.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
    public boolean onPreferenceChange(Preference preference, Object newValue){
            boolean isEnabled = ((Boolean) newValue).booleanValue();
            dependent2.setEnabled(!isEnabled);
            return true;
        }
    });
于 2013-05-01T20:31:27.263 に答える