我做了一个特殊的偏好布局。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:key="pref_sound"
android:title="@string/pref_sound"
android:summary="@string/pref_sound_summ"
android:defaultValue="true" />
<CheckBoxPreference
android:key="pref_vibro"
android:title="@string/pref_vibro"
android:summary="@string/pref_vibro_summ"
android:defaultValue="true" />
<CheckBoxPreference
android:key="pref_screen"
android:title="@string/pref_screen"
android:summary="@string/pref_screen_summ"
android:defaultValue="true" />
</menu>
和一个活动。
package com.actionandresttimer;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Prefs extends PreferenceActivity {
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.cboxpreferenses);
}
}
我可以通过主活动的菜单/设置启动该偏好活动,并且它可以工作。当我关闭并再次启动我的应用程序时,它会存储所有更改:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.main, menu);
//return true;
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
//inflater.inflate(R.menu.menu, menu);
inflater.inflate(R.menu.main, menu);
return true;
}
但是当我试图打电话时getPreferences
,它不起作用
public void getPrefs() {
// sPref = getPreferences(MODE_PRIVATE);
// sPref = PreferenceManager.getDefaultSharedPreferences(Prefs);
sPref = this.getSharedPreferences("com.Prefs", Context.MODE_PRIVATE);
cBoxSoundStatus = sPref.getBoolean("pref_sound", true);
cBoxVibroStatus = sPref.getBoolean("pref_vibro", true);
cBoxScreenStatus = sPref.getBoolean("cpref_screen", true);
}
我只能看到默认的首选项设置。我的布尔值设置为true
但在首选项活动布局中它们显示为false
我尝试了 Android Developer 网站,但我是 Java 编程新手,不明白如何从官方文档网站获取任何信息。