2010-07-31 55 views

回答

0

that post看看:

從代碼中讀取這些偏好, 我們應該創建一個getPrefs()方法, 我們可以在調用onStart() 方法調用。當我們在 在onStart()方法,而不是 的onCreate()調用它,我們可以肯定的是, 喜好負載當我們將它們設置 ,回到我們的主要活動,

private void getPrefs() { 
       // Get the xml/preferences.xml preferences 
       SharedPreferences prefs = PreferenceManager 
           .getDefaultSharedPreferences(getBaseContext()); 
       CheckboxPreference = prefs.getBoolean("checkboxPref", true); 
       ListPreference = prefs.getString("listPref", "nr1"); 
       editTextPreference = prefs.getString("editTextPref", 
           "Nothing has been entered"); 
       ringtonePreference = prefs.getString("ringtonePref", 
           "DEFAULT_RINGTONE_URI"); 
       secondEditTextPreference = prefs.getString("SecondEditTextPref", 
           "Nothing has been entered"); 
       // Get the custom preference 
       SharedPreferences mySharedPreferences = getSharedPreferences(
           "myCustomSharedPrefs", Activity.MODE_PRIVATE); 
       customPref = mySharedPreferences.getString("myCusomPref", ""); 
     } 
+0

謝謝您的回覆! 其實我的問題是不同的。 我的應用程序有兩個選項卡。在第二個選項卡首選項屏幕中顯示出哪個是listpreference。當我從列表中選擇用於更改背景屏幕的任何選項時,我在偏好屏幕中沒有立即獲得更改背景圖像的效果,當我轉到第一個選項卡時,我可以查看已更改的屏幕背景,現在當我進入第二個選項卡時屏幕),然後我得到了效果 我希望立即響應偏好屏幕與更改背景圖像。希望你能得到我需要的東西。請建議! – shobhit 2010-07-31 09:56:16

0

化妝您的首選項活動實現onPreferenceChangeListener,然後您需要通過onCreate中的鍵找到首選項並註冊偵聽器。

2
startDatePref = findPreference("time"); 

... 

    @Override 
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, 
             Preference preference) { 
     if (preference == startDatePref) { 
      // your action 
     } 

     return super.onPreferenceTreeClick(preferenceScreen, preference); 
    }