SharedPreferences#getInt() が使えないのはなぜ?
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
nHoge_ = prefs.getInt(context.getString(R.string.pref_key_hoge), 0);
が、ClassCastException を吐くのはなぜ??
去年、ADC2 の時に悩んだけど、時間無くて SharedPreferences#getString() で文字列で取って、Integer.parseInt() で数値に変えて、
nHoge_ = Integer.parseInt(prefs.getString(context.getString(R.string.pref_key_hoge), 0));
とい感じで逃げたのだが、、、
また、今日、同じように SharedPreferneces#getInt() で exception 吐かれてしまったのでした。。。
ヘルプ的には、
Throws ClassCastException if there is a preference with this name that is not an int.
なので、xml で書いたのが、int じゃないから、ClassCastException 吐くんだけど、xml で int 指定で書く方法がわからず;;
attribute で integer を指定できる??
| 固定リンク
「Android」カテゴリの記事
- Essential Phone PH-1 のバッテリー交換(2021.12.11)
- sysbench をとってみた(2016.07.02)
- ListView の Height は WRAP_CONTENT を避けるべき(2015.12.23)
- Nexus 6 Android 6.0.1 (MMB29K) root化(2015.12.18)
- Nexus 6 Android 6.0.1 (MMB29K)(2015.12.17)
この記事へのコメントは終了しました。
コメント
私も同じ問題で苦しみました。
バグだそうで(仕様ともいいます)。。。。
http://code.google.com/p/android/issues/detail?id=2096
投稿: 通りすがりFrom Google | 2011.02.22 01:04