我想使用RingtoneManager (或者创建一个自定义的类似类,如果不可能)来选择我的自定义原始文件列表之一(我想只显示我的文件,而不是默认列表,包括我的文件)。
我习惯于使用这种方式来选择铃声How to bring up list of available notification sounds on Android,但这次我想显示我的自定义铃声列表。
发布于 2016-03-14 01:08:01
如果你想在某种设置中做到这一点,你可以使用ListPreference让用户选择旋律。然后,您只需在代码中填充您的首选项;您可以通过以下方式完成此操作:
ListPreference listPreference = (ListPreference) findPreference("yourPreferenceName");
//Now you need to retrieve your melodies from res/raw folder and get their names and id'sListPreference需要两件事才能正常工作:条目和入口值。条目是用户打开列表时看到的内容(在您的例子中,是旋律的名称)。输入值是将保存在默认SharedPreference中的值(阅读一点关于使用派生ListPreference的首选项的信息)。您现在需要做的就是创建条目和entryValues:
CharSequence entries = new CharSequence[numberOfMelodies];
CharSequence entryValues = new CharSequence[numberOfMelodies];并手动或在循环中填充它们。在那之后,只需要做
listPreference.setEntries(entries);
listPreference.setEntryValues(entryValues);然后在你的应用程序中的任何地方从SharedPreference获取选定旋律的id并使用它。(Preference每次都会自动将新选择保存在默认SharedPreference中,您不必为此担心)。
https://stackoverflow.com/questions/35972281
复制相似问题