2

私は SettingsActivity ( extends PreferenceActivity ) を持っています。これは、preferences.xml ファイル (res-->xml-->preferences.xml) からロードされます。

Preferences.xml は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>

<PreferenceCategory android:title="Patient&apos;s Settings" >
    <EditTextPreference
        android:defaultValue="Not Set"
        android:key="patientMobile"
        android:title="mobile number" />
</PreferenceCategory>
<PreferenceCategory android:title="Doctor&apos;s Settings" >
    <EditTextPreference
        android:defaultValue="Not Set"
        android:key="docEmail"
        android:title="e-mail" />
    <EditTextPreference
        android:defaultValue="Not Set"
        android:key="docMobile"
        android:title="mobile number" />
</PreferenceCategory>
<PreferenceCategory android:title="Application Settings" >
    <SwitchPreference
        android:disableDependentsState="false"
        android:enabled="true"
        android:key="lang"
        android:summaryOff="English"
        android:summaryOn="Greek"
        android:switchTextOff="EN"
        android:switchTextOn="GR" />
</PreferenceCategory>

これらの値を別のアクティビティから設定/更新/上書きするにはどうすればよいですか?

Web サービスから情報を取得し、これらの値を保存して、SettingsActivity から表示したいと考えています。

1.patientMobile (string)
2.docEmail      (string)
3.docMobile     (string)
4

2 に答える 2

4

SharedPreferences設定のキーを使用して、これらの値を読み取り/設定/更新できます。

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
String patientMobile = preferences.getString("patientMobile");

//or set the values. 
SharedPreferences.Editor editor = preferences.edit();
editor.putString("patientMobile", "yes"); //This is just an example, you could also put boolean, long, int or floats
editor.commit();
于 2012-08-24T11:05:44.557 に答える
0

値を取得するときは、次のように保存します。

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
Editor editor = sp.edit();
editor.putString("patientMobile", patientMobile);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
    editor.apply();
} else {
    editor.commit();
}

値を読み取るには、単に呼び出しますsp.getString("patientMobile", defaultValue);

apply()を参照してください。また、SharedPreferencesドキュメント。

于 2012-08-24T11:15:11.930 に答える