java从ListPreference获取keyValue
以下问题:
preferences.xml
<ListPreference
安卓:title="titel"
安卓:summary="summary"
安卓:key="remove_onclick"
安卓:entries="@array/removeOnclick"
安卓:entryValues="@array/removeOnclick_value"
安卓:defaultValue="3"/>
我的问题是,如何获得值(1
,2
,或3
),以便在我的main活动中将其与if条件一起使用。java
SharedPreferences sharedConfig = PreferenceManager.getDefaultSharedPreferences(this);
String removeOnklick = sharedConfig.getString("remove_onclick", "3");
这行不通
Caused by: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String at com.notification.app.SettingsActivity.onCreate(SettingsActivity.java:14)
设置活动:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
}
编辑
strings.xml
<string-array name="removeOnclick">
<item>Always</item>
<item>Never</item>
<item>Always ask</item>
</string-array>
<string-array name="removeOnclick_value">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
我还有两个布尔值,非常好用
boolean playSound = sharedConfig.getBoolean("sound_on_create", false);
boolean vibrate = sharedConfig.getBoolean("vibrate_on_create", false);
更新:
我只需要删除缓存和内存
# 1 楼答案
尝试使用getBaseContext():
试试这个