2010-06-09 51 views
0

我有我的菜單按鈕提出了一個設置選項,它帶來了許多ListPreferences,如重量和各種尺寸的眼鏡(這是一個BAC計算器應用程序)。我會選一個例子......體重會起作用。如何獲得關聯到變量的首選項?

根據你的體重多少它會影響你的BAC。我有一個用於Weight的int,設置爲180.我希望有人能夠進入菜單Settings,選擇「Weight」ListPreference,然後在100,130,150,180,210,240,270和300.我已經顯示了數字(所有的數組都已經創建),我可以選擇一個,但它沒有做任何事情,因爲它沒有與int Weight變量鏈接。我如何去關聯信息?

回答

0

,如果你使用標準PreferenceActivities:

public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener { 

    // <snip> 

    public void onSharedPreferenceChanged(SharedPreferences pref0, String key) { 
     if (key.equals("weight")){ 
      int weight = pref0.getInt("weight",100)); 

      // <you have now weight as int!> 
     } 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 

     // Set up a listener whenever a key changes 
     getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 

     // Unregister the listener whenever a key changes 
     getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); 
    } 
+0

沒有骰子。權重int仍然不是我主類中的權重變量。 – 2010-06-09 17:43:16

+0

然後在你的類中實現OnSharedPreferenceChangeListener,它將通過首選項 – 2010-06-09 17:46:32

+0

捕獲體重變化,那麼我會在我的類中放入什麼int Weight =? – 2010-06-10 00:14:04

相關問題