« プログラミングコンテストチャレンジブック | トップページ | 久しぶりのカート »

2010.10.16

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」カテゴリの記事

コメント

私も同じ問題で苦しみました。
バグだそうで(仕様ともいいます)。。。。
http://code.google.com/p/android/issues/detail?id=2096

投稿: 通りすがりFrom Google | 2011.02.22 01:04

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: SharedPreferences#getInt() が使えないのはなぜ?:

« プログラミングコンテストチャレンジブック | トップページ | 久しぶりのカート »