将RingtoneManager与自定义原始文件一起使用

时间:2016-03-13 15:45:13

标签: android ringtonemanager

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

我习惯用这种方式选择铃声How to bring up list of available notification sounds on Android,但这一次我要显示自定义铃声列表。

1 个答案:

答案 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中,您无需担心这一点。)