我在EditTextPreference之后的preferences.xml中有:
<EditTextPreference
android:name="@string/pref_test"
android:defaultValue="0.6"
android:inputType="numberDecimal"
android:key="editTestPref"
android:maxLength="5"
android:summary=""
android:title="@string/pref_test" />
在我的一项活动中,我阅读了该值。但问题是,如果用户不输入任何内容(“”),我的应用程序就会崩溃。当然我可以在活动中做一个 if 语句来检查它是否为空字符串,但我想做以下事情:
在 Preferences.java 中,我得到了preferenceEditText 的更改。如果用户输入“”,我想设置一个默认值:
if (preference.getKey().equals("editTestPref")) {
if(newValue.equals(""))
{
final SharedPreferences.Editor prefsEditor = prefs.edit();
prefsEditor.putString("editTestPref", "1");
prefsEditor.commit();
summary = "0.6"; // to update the summary of preference
}
else
{
summary= (String) newValue;
}
}
我也试过这段代码:
SharedPreferences customSharedPreference = getSharedPreferences(
"myCustomSharedPrefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = customSharedPreference
.edit();
editor.putString("editTestPref", "1");
editor.commit();
两者都不起作用,它们不会更新 sharedPreference 值。它还是 ””。