這一次在同一個項目中,我面臨着一個稍微具有挑戰性的問題,即在RES/XML文件夾settings.xml文件:Android如何從SharedPreference中設置EditTextPreference的默認值?
<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
和age
分別存儲在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);
}
}
你想從代碼設置* android:defaultValue *? – Rami 2015-02-07 17:32:22
@Rami如果它唯一可能通過代碼,當然。但如果xml可以幫助自己找到它,那會更好。就像:@strings/....等等等等。 – blaberer 2015-02-07 23:05:14
在xml中,您可以通過以下方式執行:* android:defaultValue =「YOUR_DEFAULT_VALUE」*。請注意,您從strings.xml * android:defaultValue =「@ strings /...."*獲取了默認值。 – Rami 2015-02-08 00:03:02