2012-08-09 14 views
5

プリファレンスアクティビティーでエレメントをアクティブ化および非アクティブ化する方法の例が必要です。プリファレンスをアクティブ化および非アクティブ化する

Wi-Fiチェックボックスをオフにした場合の例では、[ネットワーク通知]チェックボックスには触れず、灰色に変わり、Wi-Fiチェックボックスをオンにすると他のチェックボックス。

また、Wi-Fiチェックボックスが有効になっているときに[Wi-Fiネットワークの追加]タブを設定するにはどうすればよいですか?依存=「」コード:

enter image description here

+0

問題が解決したら回答を受け入れる –

答えて

16

は、我々は別の好みからアンドロイドに依存している優先してある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" /> 
0

好みの活動はonResumeメソッドチェックWiFi接続状態で起動し、またはあなたが好きな、適切な設定を無効/有効にしてください。

これは、単純な例のように見えますが、一般的な考え方に過ぎません。

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

    if(isConnected) { 
    connPreference.setEnabled(false); 
    } else { 
    connPreference.setEnabled(true); 
    } 
} 
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を使用する場合は、カテゴリ全体を有効または無効にすることもできます。

+0

'prefField'とは何ですか?それを宣言する方法? – Bishan

+0

prefFieldは、有効/無効にしたい設定値です。 PREFERENCE_KEYでは、PREFERENCE_KEY_CHILDを有効/無効にして、prefFieldがPREFERENCE_KEY_CHILDになっています。 –

+0

あなたの返信ありがとう:) – Bishan

関連する問題