我可以做铃声在preferences铃声、preferences

2023-09-06 07:17:37 作者:送分小仙女哟

我怎样才能使铃声的活动(即总是出现在设置),以便用户可以选择系统铃声她的铃声我GOOGLE了,但我没有找到完整的教程,我真的很困惑,请给我补习或某些codeS。

另外,如果我希望用户选择特殊的铃声在我的应用通知我应该使用共享preference或preference?

我已经做了菜单:

  //菜单code部分#2
    公共布尔onOptionsItemSelected(菜单项项){
    开关(item.getItemId()){
    案例R.id.about:
  startActivity(新意图(这一点,About.class));
    返回true;
    案例R.id.help:
  startActivity(新意图(这一点,Help.class));
    返回true;
    案例R.id.setting:
   startActivity(新意图(这一点,Setting.class));
        返回true;
    默认:
    返回super.onOptionsItemSelected(项目);
   }
 

解决方案

全部code:

RES / XML / preferences.xml

 < XML版本=1.0编码=UTF-8&GT?;
< preferenceScreen的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android>
      < preferenceCategory
                机器人:标题=第二类>

        <铃声preference
                机器人:名称=铃声preference
                机器人:总结=选择铃声
                机器人:标题=铃声
                机器人:关键=铃声preF/>

< / preferenceCategory>
< / preferenceScreen>
 

preferences.class

 公共类preferences扩展preferenceActivity {
@覆盖
        保护无效的onCreate(包savedInstanceState){
                super.onCreate(savedInstanceState);
                加preferencesFromResource(R.xml preferences。);

 }
}
 
Android ApiDemos示范解析 34 App Preferences Preferences from code

您code去这里:

 公共布尔onOptionsItemSelected(菜单项项){
    开关(item.getItemId()){
    案例R.id.about:
   // startActivity(新意图(这一点,About.class));
    返回true;
    案例R.id.help:
    startActivity(新意图(这一点,Help.class));
    返回true;
    案例R.id.setting:
    意图settingsActivity =新的意图(getBaseContext()
                                                preferences.class);
                                startActivity(settingsActivity);


        返回true;
    默认:
    返回super.onOptionsItemSelected(项目);
    }
 

要读取code这些preferences,我们应该创建一个获取preFS()方法,我们可以在 ONSTART()方法。当我们调用它的 ONSTART()方法,而不是的onCreate(),我们可以肯定的是,preferences负载的时候,我们已经将它们设置并返回到我们的主要活动, 该获取preFS()方法可以是这样的:

 字符串铃声preference;
//获取XML / preferences.xml preferences
                共享preferences preFS = preferenceManager
                                .getDefaultShared preferences(getBaseContext());
 铃声preference = prefs.getString(铃声preF,
                                DEFAULT_RINGTONE_URI);
 

AndroidManifest.xml中

 <活动
        机器人:NAME =preferences。
        机器人:标签=@字符串/ SET_ preferences>
< /活性GT;
 

How can I make ringtone activity (that always appear in setting) so the user can choose her ringtone from system ringTones I googled it but I didn't find complete tutorial, I am really confused, please give me tutorial or some codes.

Also, if I want the user to choose the special ringtone to Notification in my application should i use Shared preference or preference?

I already did the Menu:

      // Menu Code Part#2
    public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.about:
  startActivity(new Intent(this, About.class));
    return true;
    case R.id.help:
  startActivity(new Intent(this, Help.class));
    return true;
    case R.id.setting:
   startActivity(new Intent(this, Setting.class));
        return true;
    default:
    return super.onOptionsItemSelected(item);
   }

解决方案

Full code:

res/xml/preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
      <PreferenceCategory
                android:title="Second Category">

        <RingtonePreference
                android:name="Ringtone Preference"
                android:summary="Select a ringtone"
                android:title="Ringtones"
                android:key="ringtonePref" />

</PreferenceCategory>
</PreferenceScreen>

Preferences.class

public class Preferences extends PreferenceActivity {
@Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                addPreferencesFromResource(R.xml.preferences); 

 }
}

Your code go here:

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.about:
   // startActivity(new Intent(this, About.class));
    return true;
    case R.id.help:
    startActivity(new Intent(this, Help.class));
    return true;
    case R.id.setting:
    Intent settingsActivity = new Intent(getBaseContext(),
                                                Preferences.class);
                                startActivity(settingsActivity);


        return true;
    default:
    return super.onOptionsItemSelected(item);
    } 

To read these preferences from code, we should create a getPrefs() method, which we can call in the onStart() method. When we call it in the onStart() method instead of onCreate(), we can be sure that the preferences load when we have set them and returned to our main activity, The getPrefs() method could look like this:

String ringtonePreference;
// Get the xml/preferences.xml preferences
                SharedPreferences prefs = PreferenceManager
                                .getDefaultSharedPreferences(getBaseContext());
 ringtonePreference = prefs.getString("ringtonePref",
                                "DEFAULT_RINGTONE_URI");

androidmanifest.xml

<activity
        android:name=".Preferences"
        android:label="@string/set_preferences">
</activity>