Java 如何将首选项与活动联系起来?
Android Studio还很新,我在将我的preferences.xml中的复选框与我的所有其他活动连接起来时遇到了问题,因此它们可以作为应用程序的设置。正如官方页面()所说,我已经设置好了一切,但我仍然无法让一切正常工作 这是我的设置课程: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
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
,并可以根据您对共享引用的更改来告诉它该做什么。