Android 如何从 SharedPreference 设置 EditTextPreference 的默认值?

2024-02-09

这次在同一个项目中,我面临一个稍微具有挑战性的问题,在 res/xml 文件夹中的 settings.xml 文件中:

<EditTextPreference
    android:key="weight" 
    android:title="@string/update_user_weight"
    android:persistent="true"
    android:dialogTitle="@string/update_user_weight"
    android:dialogMessage="@string/update_user_weight_message"
    android:defaultValue="" />

<EditTextPreference
    android:key="age"
    android:title="@string/update_user_age"
    android:persistent="true"
    android:dialogTitle="@string/update_user_age"
    android:dialogMessage="@string/update_user_age_message"
    android:defaultValue="" />

在类文件 UserData.java 中:

SharedPreferences storeWeightAndAge = getSharedPreferences("WeightAndAgeStorage", Context.MODE_PRIVATE);
Editor store = storeWeightAndAge.edit();
store.putString("weight", weightData);
store.putString("age", ageData);
store.commit();

我在这里想做的是设置上述两个 EditTextPreferences'android:defaultValue储存weight and age in the SharedPreferences分别。

现在,我该怎么做呢?

编辑:提供使用 settings.xml 文件的 Settings.java 文件:

package com.example.drinkup;

import android.content.SharedPreferences;
import android.os.*;
import android.preference.PreferenceFragment;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;

public class Settings extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);



    }

}

好的,伙计们,我明白了:

import android.preference.EditTextPreference;

public class Settings extends PreferenceActivity {


    EditTextPreference weightEditTextPreference;
    EditTextPreference ageEditTextPreference;

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

        weightEditTextPreference = (EditTextPreference)findPreference("weight");
        ageEditTextPreference = (EditTextPreference)findPreference("age");

        SharedPreferences getWeightAndAgeStore = getSharedPreferences("weightAndAgeStorage", Context.MODE_PRIVATE);
        weightEditTextPreference.setText(getWeightAndAgeStore.getString("weight", "0"));
        ageEditTextPreference.setText(getWeightAndAgeStore.getString("age", "0"));

其作用是将 EditText 框设置为SharedPreferences' 保存的密钥(在本例中,weight and age of WeightAndAgeStorage)按下按钮时弹出的对话框中的数据。

希望现在或将来阅读本文的其他人(但过去呢?)从这一发现中受益。

Cheers!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 如何从 SharedPreference 设置 EditTextPreference 的默认值? 的相关文章

随机推荐