有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从ListPreference获取keyValue

以下问题:

preferences.xml

    <ListPreference
        安卓:title="titel"
        安卓:summary="summary"
        安卓:key="remove_onclick"
        安卓:entries="@array/removeOnclick"
        安卓:entryValues="@array/removeOnclick_value"
        安卓:defaultValue="3"/>

我的问题是,如何获得值(12,或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) 个答案

  1. # 1 楼答案

    尝试使用getBaseContext():

    SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()) ;
    

    试试这个

    if(removeonklick == "3")
    {}