我想用RingtoneManager
(或創建一個自定義類似類,如果是不可能的)選擇的原始文件我的自定義列表中的一個(我想只顯示我的文件不包括我的文件的默認列表)。使用RingtoneManager定製的原始文件
我習慣用這種方式來挑選鈴聲How to bring up list of available notification sounds on Android但這次我想展示的鈴聲我的自定義列表。
我想用RingtoneManager
(或創建一個自定義類似類,如果是不可能的)選擇的原始文件我的自定義列表中的一個(我想只顯示我的文件不包括我的文件的默認列表)。使用RingtoneManager定製的原始文件
我習慣用這種方式來挑選鈴聲How to bring up list of available notification sounds on Android但這次我想展示的鈴聲我的自定義列表。
如果你想這樣做,在某種設置,您可以使用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中,您無需擔心)。
謝謝,我會測試它,如果它的作品,我會接受這個anwser – anony50600
沒有問題的兄弟......如果您有任何麻煩,不能自行解決,只寫。我已經用ListPreference做了一點工作。 – Vucko
我試圖按照這個例子http://www.edumobile.org/android/listpreference-example/。但在這個例子中,當點擊PrefActivity中的一個按鈕時,列表首選項顯示,但在我的情況下,當我點擊我的自定義活動中的按鈕而不是PrefActivity時,我想顯示列表,是否有可能? – anony50600