gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:24 26 4
gpt4 key购买 nike

这次在同一个项目中,我遇到了一个稍微具有挑战性的问题,在 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 设置为存储在 weightageSharedPreferences 分别。

现在,我该怎么做呢?

编辑:提供了使用 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 保存的键(在本例中,weightage WeightAndAgeStorage) 按下它时弹出的对话框中的数据。

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

干杯!

关于java - Android 如何从 SharedPreference 设置 EditTextPreference 的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28383400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com