0

PreferenceFragment を作成しました。変更した設定を保存し、アプリを再起動してロードするにはどうすればよいですか? 2 番目の質問: 別のクラスから設定値を取得するにはどうすればよいですか?

My PrefsActivity

public class PrefsActivity extends ActionBarActivity {
    public static PrefsFragment mPrefsFragment;

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

        FragmentManager mFragmentManager = getFragmentManager();
        FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
        mPrefsFragment = new PrefsFragment();
        mFragmentTransaction.replace(android.R.id.content, mPrefsFragment);
        mFragmentTransaction.commit();
    }
}

そして私の PrefsFragment

public class PrefsFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);
    }

}
4

1 に答える 1

1

設定を読み取るには、他のアクティビティで次を使用します。

SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this);

次に、設定を読み取るには、次を使用します。

String sEmailAddr = spref.getString("email", "");

最初の引数は、取得する「キー」です。これは、パーフェレンスの XML ファイルで定義する必要があります (このR.xml.settings場合)。2 番目の引数は、そのようなキーがない場合に返されるものです。

他の種類のプリファレンスも同様に機能します。チェックボックスで設定されたブール値を取得するには:

boolean showEmail = spref.getBoolean("show_emails", true);

これは自動的に行われるため、設定を明示的に保存またはロードする必要はありません。

docsに詳細があります。こちら で説明されているように、設定のデフォルト値も初期化する必要があります。

于 2015-03-27T19:29:26.963 に答える