2010-03-23 40 views
3

我有一個設置菜單彈出,它是一個ListPreference類型菜單。它與一個settings.xml文件關聯,其中有'數組字符串'。這一切都很好,但我不知道如何檢索用戶的偏好。android:使用ListPreference並檢索密鑰字符串

作爲一個例子,假設用戶選擇一種顏色(紅色,綠色或藍色)。我在'數組字符串'中創建的列表包含紅色,綠色和藍色文本。在我的代碼中,如果用戶選擇了紅色,我想要做些什麼,如果他們選擇藍色等,我還想要做些什麼?我會使用'case'語句還是'if'語句?最重要的是,我將如何檢索用戶的偏好 - 關鍵? (我正在檢查一個布爾值?)

+0

我認爲如果你想獲得幫助,你需要更具體。你在使用Android的首選項庫嗎?或者你只是彈出一個顯示顏色列表的對話框? – 2010-03-23 14:10:28

+0

是的,我正在使用androids首選項庫。 – Allan 2010-03-24 02:29:21

回答

5

如果您正在使用ListPreference,你有沒有禁用持久化狀態,可以從SharedPreferences讀取選定的值,設置完成後。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
prefs.getString(yourkey, "defvalue"); 

你也可以訂閱onClick事件,並使用提到的代碼Rpond。

+0

我把它與你的所有幫助一起工作 - 你們,我非常感謝你們所有的 - 你抽出時間幫助我們的初學者!感謝堆棧溢出! – Allan 2010-03-24 02:49:47

2

如果您的列表顯示在對話框中,那麼您需要指定一個OnClickListener,它將調用onClick方法。檢查下面的例子。在示例中,傳遞給onClick的索引是數組中項目的索引。

new AlertDialog.Builder(this).setTitle("Settings").setItems(R.array.colors, new DialogInterface.onClickListener() { void onClick(DialogInterface d, int index) { 
switch(index) { 
CASE 0: // do something 
CASE 1: // do something else}}};