0

私は特別な好みのレイアウトを作りました。

<?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 Web サイトを試してみましたが、Java プログラミングは初めてで、公式ドキュメント Web サイトから情報を取得する方法がわかりません。

4

1 に答える 1

0

このコードで試してください

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

prefs.getBoolean("pref_sound", true);

于 2013-08-20T02:47:02.783 に答える