0

SwitchPreferenceを使用して、isEnabled()メソッドを使用してその状態を検出しようとしています。SwitchPreference.isEnabled()が正しく有効/無効になっているかどうかを検出しません。

ここでは、コード(SettingsActivity.javaで)です:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     getDelegate().installViewFactory(); 
     getDelegate().onCreate(savedInstanceState); 
     super.onCreate(savedInstanceState); 

     spChanged = new 
       SharedPreferences.OnSharedPreferenceChangeListener() { 
        @Override 
        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, 
                  String key) { 
         // your stuff here 
         if (key.equals(KEY_ENABLE_F)) { 
          SwitchPreference fPref = (SwitchPreference) findPreference(key); 
          if (fPref.isEnabled()) { 
           Toast.makeText(getBaseContext(), "Enabled", Toast.LENGTH_SHORT).show(); 
          } else { 
           Toast.makeText(getBaseContext(), "Disabled", Toast.LENGTH_SHORT).show(); 
          } 
         } 
        } 
       }; 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     getPreferenceScreen().getSharedPreferences() 
       .registerOnSharedPreferenceChangeListener(spChanged); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     getPreferenceScreen().getSharedPreferences() 
       .unregisterOnSharedPreferenceChangeListener(spChanged); 
    } 

問題はテキストとToastがスイッチ場合は「ON」または「OFF」に関係なく、最大表示される「有効」ということです。

ここで間違っていますか?

答えて

0

おっと!私は質問を投稿する前にそれを試していたはずです。とにかく、私は変更することで問題を解決:これに

fPref.isEnabled() 

fPref.isChecked() 
関連する問題