首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对自定义raw文件使用RingtoneManager

对自定义raw文件使用RingtoneManager
EN

Stack Overflow用户
提问于 2016-03-13 23:45:13
回答 1查看 347关注 0票数 0

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

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

EN

回答 1

Stack Overflow用户

发布于 2016-03-14 01:08:01

如果你想在某种设置中做到这一点,你可以使用ListPreference让用户选择旋律。然后,您只需在代码中填充您的首选项;您可以通过以下方式完成此操作:

代码语言:javascript
复制
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:

代码语言:javascript
复制
CharSequence entries = new CharSequence[numberOfMelodies];
CharSequence entryValues = new CharSequence[numberOfMelodies];

并手动或在循环中填充它们。在那之后,只需要做

代码语言:javascript
复制
listPreference.setEntries(entries);
listPreference.setEntryValues(entryValues);

然后在你的应用程序中的任何地方从SharedPreference获取选定旋律的id并使用它。(Preference每次都会自动将新选择保存在默认SharedPreference中,您不必为此担心)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35972281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档