【问题标题】:Use RingtoneManager with custom raw files将 RingtoneManager 与自定义原始文件一起使用
【发布时间】:2016-06-28 14:10:41
【问题描述】:

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

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

【问题讨论】:

    标签: android ringtonemanager


    【解决方案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 中,您无需担心)。

    【讨论】:

    • 谢谢,我会测试它,如果它有效,我会接受这个答案
    • 没问题的兄弟...如果您有任何问题并且无法自己解决,请写。我已经使用 ListPreference 做了一些工作。
    • 我试着按照这个例子edumobile.org/android/listpreference-example。但在此示例中,当单击 PrefActivity 中的按钮时会显示列表首选项,但在我的情况下,我想在单击自定义活动中的按钮而不是 PrefActivity 时显示列表,这可能吗?
    • 我现在知道了,伙计。我所知道的是,建议使用 PreferenceActivity 或 PreferenceFragment。你认为你可以在那个活动中加入一个片段吗? (在我的应用中,我使用的是 PreferenceFragment)
    • 这对你有用吗,你在实现它时遇到什么问题吗?
    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2017-09-30
    • 2017-07-04
    相关资源
    最近更新 更多