Java 如何将首选项与活动联系起来?

Java 如何将首选项与活动联系起来?,java,android,android-studio,Java,Android,Android Studio,Android Studio还很新,我在将我的preferences.xml中的复选框与我的所有其他活动连接起来时遇到了问题,因此它们可以作为应用程序的设置。正如官方页面()所说,我已经设置好了一切,但我仍然无法让一切正常工作 这是我的设置课程: public class Settings extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super

Android Studio还很新,我在将我的preferences.xml中的复选框与我的所有其他活动连接起来时遇到了问题,因此它们可以作为应用程序的设置。正如官方页面()所说,我已经设置好了一切,但我仍然无法让一切正常工作

这是我的设置课程:

public class Settings extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getFragmentManager().beginTransaction()
                .replace(android.R.id.content, new SettingsFragment())
                .commit();
    }
}
和我的设置片段类:

public class SettingsFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
     }
}
我尝试在应用程序中打开或关闭音乐或sfx(如果选中),这是我的preferences.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <CheckBoxPreference
        android:key="music check box"
        android:title="Music"
        android:defaultValue="true"
        android:id="@+id/checkMusic"/>

    <CheckBoxPreference
        android:key="sfx check box"
        android:title="SFX"
        android:defaultValue="true"
        android:id="@+id/checkSfx"/>

    <CheckBoxPreference
        android:key="notifications check box"
        android:title="Notifications"
        android:defaultValue="true"
        android:id="@+id/checkNotif"/>

</PreferenceScreen>

现在,我的MediaPlayer位于一个应用程序类中,因此它可以在每个活动中运行。我该怎么做呢

现在,我的MediaPlayer位于一个应用程序类中,因此它可以在每个活动中运行

这可能不是正确的模式

我该怎么做呢


让组件管理您的
MediaPlayer
应用程序
,可能是一个
服务
以后的某个时间)调用
上的
注册SharedReferenceChangeListener()
,以了解更改情况。然后,根据需要对这些更改做出反应。

到底出了什么问题?@pantos27好吧,伙计,我就是不能让这些复选框做任何事情。我想这很酷,而且它们在onDestroy()上保持相同的状态,但以这种速度,它们几乎毫无用处。我需要将它们连接到东西上,但他们不让我使用。设置该方法仍然有困难,您能分享一个示例或示例代码吗?如何让我的MediaPlayer调用该方法?提前谢谢man@Mintoil:有关使用
RegisterOnSharedReferenceChangeListener()
@Mintoil的示例,请参阅和:“如何让我的MediaPlayer调用该方法?”--您的
应用程序的自定义子类可以调用
首选项管理器。GetDefaultSharedReferences()
,在该
SharedReferences
上调用
RegisterOnSharedReferenceChangedListener()
。该
应用程序大概可以访问您的
MediaPlayer
,并可以根据您对
共享引用的更改来告诉它该做什么。