当我从偏好中获取值时会出现此错误:
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"/>
答案 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();