5

設定アクティビティで要素をアクティブ化および非アクティブ化する方法の例のチュートリアルが必要です。

たとえば、下の図では、Wi-Fi チェック ボックスが選択されていない場合、[ネットワーク通知] チェック ボックスをタッチできず、灰色に変わります。Wi-Fi チェック ボックスが選択されている場合は、他のチェック ボックスをタッチできます。

また、whi-fi チェックボックスが有効になっている場合、[Wi-Fi ネットワークの追加] タブにデータを入力するにはどうすればよいですか?

ここに画像の説明を入力

4

3 に答える 3

17

別の設定 android:dependency="" コードに依存している設定に、preferences.xml ファイルを追加する必要があります。

例えば ​​:

        <CheckBoxPreference
            android:key="checkBox"
            android:summary="On/Off"
            android:title="Enable" />

        <ListPreference
            android:entries="@array/listOptions"
            android:entryValues="@array/listValues"
            android:key="listpref"
            android:summary="List preference example"
            android:title="List preference"
            android:dependency="checkBox" />
于 2012-08-09T08:00:35.140 に答える
6

あなたの設定アクティビティは を実装する必要がありますOnSharedPreferenceChangeListener。必ずリスナーにアクティビティを登録および登録解除してください。

次に、メソッドonResume()onSharedPreferenceChangedメソッドの両方で、制御設定の状態を評価して、従属設定を有効にするか無効にするかを決定します。

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
        final String key) {
    if (key.equals(PREFERENCE_KEY)) {
        // handle setting enabled or disabled depending on value of preference
        if (sharedPreferences.getBoolean(key, false)) {
            // prefField.setenabled(true);
        } else {
            // prefField.setenabled(false);
        }

    }
}

PreferenceCategory も使用する場合は、カテゴリ全体を有効または無効にすることもできます。

于 2012-08-09T09:52:37.887 に答える
0

設定アクティビティが onResume メソッドで開始されたら、wifi 接続ステータスを確認するか、必要なものを確認し、適切な設定を有効/無効にします。

一般的な考え方を示すために、この単純な例に似ているように見えるかもしれません。

@Override
protected void onResume() {
   super.onResume();
   boolean isConnected = getConnectionStatus();

   if(isConnected) {
     connPreference.setEnabled(false);
   } else {
     connPreference.setEnabled(true);
   }
}
于 2012-08-09T08:07:41.127 に答える