我想使用RingtoneManager
(或创建一个自定义类似的类,如果不可能)来选择我的一个自定义原始文件列表(我想只显示我的文件而不是默认列表,包括我的文件)。
我习惯用这种方式选择铃声How to bring up list of available notification sounds on Android,但这一次我要显示自定义铃声列表。
答案 0 :(得分: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并使用它。 (首选项会每次自动将新选择保存在默认的SharedPreference中,您无需担心这一点。)