【发布时间】:2015-04-07 15:15:48
【问题描述】:
这次在同一个项目中,我面临一个稍微具有挑战性的问题,在 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分别设置为存储在SharedPreferences中的weight和age。
现在,我该怎么做呢?
编辑:提供了使用 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);
}
}
【问题讨论】:
-
你想从代码中设置 android:defaultValue 吗?
-
@Rami 如果只能通过代码实现,当然可以。但是如果xml可以帮助自己找到它,那就更好了。喜欢:
@strings/....等等等等……类似的东西。 -
在xml中,你可以通过:android:defaultValue="YOUR_DEFAULT_VALUE"。请注意,您从 strings.xml android:defaultValue="@strings/....". 获取默认值
-
@Rami 哦,不,我不打算从 strings.xml 设置默认值,我只是想举一个例子,以与 strings.xml 类似的方式设置默认值.我想将默认值设置为我存储在
SharedPreferences中的字符串,它们的键是"weight"和"age"。
标签: java android sharedpreferences edittextpreference