字符串无法强制转换为整数错误

时间:2017-05-26 11:21:42

标签: android types

当我从偏好中获取值时会出现此错误:

public static final String PREF_KEY_INTERVAL = "pref_key_interval";
settings = PreferenceManager.getDefaultSharedPreferences(getActivity());
int curInterval =  settings.getInt(PREF_KEY_INTERVAL, 1);

值得注意的是,应用程序在模拟设备上正常运行但在真实设备上崩溃。我已多次检查返回类型。什么是线索或我的IDE疯了?

首选项xml:

<Preference
    android:key="pref_key_interval"
    android:title="@string/pref_key_interval_title"
    android:summary="@string/pref_key_interval_summary"
    android:defaultValue="5"/>

2 个答案:

答案 0 :(得分:0)

android:defaultValue = "5"String。因此,您要将String投射到integer。试试这个

int curInterval =  Integer.parseInt(settings.getString(PREF_KEY_INTERVAL, "1"));

答案 1 :(得分:0)

尽量不要使用DefaultSharedPreferences。

final String eulaKey = "mykey";
Context mContext = getApplicationContext();
mPrefs = mContext.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();

来自Android getDefaultSharedPreferences