我想使用RingtoneManager
(如果不可能的话,创建一个自定义的类似类)来选择我的自定义原始文件列表之一(我只想显示我的文件而不是默认列表,包括我的文件)。
我习惯使用这种方式来选择铃声如何在 Android 上调出可用通知声音列表,但这次我想显示我的自定义铃声列表。
我想使用RingtoneManager
(如果不可能的话,创建一个自定义的类似类)来选择我的自定义原始文件列表之一(我只想显示我的文件而不是默认列表,包括我的文件)。
我习惯使用这种方式来选择铃声如何在 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 中,您无需担心)。