1. ホーム
  2. Android

My Android Notes (XI) - 環境設定を使って設定を保存する

2022-02-16 03:38:50


Androidでは、データを永続化する方法が4つあります。SQLiteデータベース、ファイルストレージ、Preference、ContentProviderです。

4つのメソッドはそれぞれあるものに特化しており、PreferenceはMapのようなキーと値のペアで保存され、ユーザーの個人設定などの情報を保存するのに最適なメソッドである。


xmlファイルで設定した後、専用のPreferenceActivityで表示することで、設定されたxmlを指定することでアクションに基づいてプログラムPreferenceの対応値を自動的に変更するプロフェッショナルな設定インターフェイスを提供します。

<スパン 例えば、resディレクトリにxmlフォルダを作成し、以下の内容でseeting.xmlファイルを新規に作成します。

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

    <CheckBoxPreference
        android:defaultValue="false"
        android:key="boolean_value"
        android:summary="Save a boolean value"
        android:title="Checkbox" />

    <EditTextPreference
        android:defaultValue="defaultString"
        android:key="string_value"
        android:name="EditText"
        android:summary="Save a string"
        android:title="Edit Text" />

</PreferenceScreen>

checkBoxPreferenceはboolean値、EditTextPreferenceはStringに対応する。 android:keyは識別子であり、必ず は一意である。

次に、以下の内容でSettingActivity.javaを作成します。

import android.com.ui;
import android.os.Bundle;
import android.preference.PreferenceActivity;

public class SettingActivity extends PreferenceActivity{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.setting);
    }
}


コード addPreferencesFromResource(R.xml.setting); は、このPreferenceActivityにxmlを割り当て、このインターフェースが開かれたときに、次のような結果になるようにします。


<スパン インターフェイスの設定を変更するたびに、プログラムは自動的に新しい値を保存するために永続化します。

プログラム内の他の場所で設定された値を取得するのも簡単で、上記の "boolean_value" や "string_value" のように、識別子を使用するだけです。

		boolean booleanValue = PreferenceManager.getDefaultSharedPreferences(
				this).getBoolean("boolean_value", false);
		String stringValue = PreferenceManager.getDefaultSharedPreferences(this)
				.getString("string_value", "");

即座に利用可能

PreferenceManager.getDefaultSharedPreferences(Context) は、プログラム内のどこでも一意であるグローバルなPreferenceオブジェクトを取得する静的メソッドです。getBooleanおよびgetStringメソッドの第2引数はデフォルト値 getBooleanおよびgetStringメソッドの第2引数はデフォルト値で、これはgetKeyが失敗した場合のデフォルト戻り値です。


----------------------------------------------------------

で書いてダウンロードしたデモ。 http://download.csdn.net/detail/barryhappy/4161548