2011-12-19 48 views
1

我有擴展PreferenceActivity類:檢測偏好變化

public class PreferenceActivity extends android.preference.PreferenceActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.preferences); 
    } 

} 

而且我有多重優惠:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
android:title="Preferences"> 
    <PreferenceCategory 
     android:title="Web Server"> 

     <EditTextPreference 
      android:key="accessToken_key" 
      android:title="Access Token" 
      android:summary="The access token required to access the web server" 
      android:dialogTitle="Access Token" 
      android:numeric="integer" 
      android:maxLength="12" /> 

    </PreferenceCategory> 

</PreferenceScreen> 

如何檢測,當用戶改變EditTextPreference,這樣我可以立即存儲新的價值變成了一個變量?

回答

3

試着看一下

http://developer.android.com/reference/android/preference/Preference.html http://developer.android.com/reference/android/preference/Preference.OnPreferenceChangeListener.html

,如果你不運行基於片段偏好然後

findPreference("key_for_pref").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { 

     @Override 
     public boolean onPreferenceChange(Preference preference, Object newValue) { 
      // TODO Auto-generated method stub 
      return false; 
     } 
    }); 

警告:findPreference API不贊成在新的基於片段的喜好

希望這會有所幫助。