2016-03-13 22 views

回答

1

如果你想這樣做,在某種設置,您可以使用ListPreference爲讓用戶選擇一個旋律。然後你只需要在你的代碼中填充你的偏好;您可以通過以下方式執行此操作:

ListPreference listPreference = (ListPreference) findPreference("yourPreferenceName"); 
//Now you need to retrieve your melodies from res/raw folder and get their names and id's 

ListPreference需要兩件事才能正常工作:條目和條目值。條目是用戶在打開列表時看到的內容(在您的情況下是旋律名稱)。輸入值是將保存在默認SharedPreference中的值(請閱讀關於使用從哪個ListPreference派生的偏好的一點說明)。所有你現在需要做的是創建條目和entryValues:

CharSequence entries = new CharSequence[numberOfMelodies]; 
CharSequence entryValues = new CharSequence[numberOfMelodies]; 

,並手動或循環內填充起來。 之後,只是做

listPreference.setEntries(entries); 
listPreference.setEntryValues(entryValues); 

而且從SharedPreference獲得所選擇的旋律的id,無論你在你的應用需要和使用它。 (Preference每次都會自動將新選擇保存在默認的SharedPreference中,您無需擔心)。

+1

謝謝,我會測試它,如果它的作品,我會接受這個anwser – anony50600

+0

沒有問題的兄弟......如果您有任何麻煩,不能自行解決,只寫。我已經用ListPreference做了一點工作。 – Vucko

+0

我試圖按照這個例子http://www.edumobile.org/android/listpreference-example/。但在這個例子中,當點擊PrefActivity中的一個按鈕時,列表首選項顯示,但在我的情況下,當我點擊我的自定義活動中的按鈕而不是PrefActivity時,我想顯示列表,是否有可能? – anony50600

相關問題