0

我想使用RingtoneManager(如果不可能的话,创建一个自定义的类似类)来选择我的自定义原始文件列表之一(我只想显示我的文件而不是默认列表,包括我的文件)。

我习惯使用这种方式来选择铃声如何在 Android 上调出可用通知声音列表,但这次我想显示我的自定义铃声列表。

4

1 回答 1

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 中,您无需担心)。

于 2016-03-13T17:08:00.910 回答