2012-01-17 9 views
3

私は奇妙な問題があります。私は以前にそれを持っていたことはありません。私は私のSharedPreferenceにint値を保存しようとすると、他のアクティビティで復元します。他の値を保存しても値は常に0です(例:1)。INTをSharedPreferencesに保存できないのはなぜですか?

private String Number; 
private String Profile; 

し、最初の活動でSharedPreferencesに(この場合は "1" で)値を保存:

SharedPreferences a = FirstActivity.this.getSharedPreferences("a", MODE_PRIVATE); 
SharedPreferences.Editor prefsEditorProfiles = a.edit(); 
prefsEditorProfiles.putInt(Profile, 1); 
prefsEditorProfiles.putInt(Number, 1); 
prefsEditorProfiles.commit(); 

、他の活動にSharedPreferencesを復元:

SharedPreferences a = SecondActivity.this.getSharedPreferences("a", MODE_PRIVATE); 
int ab = a.getInt(Number, 0); 

とアプリケーションを私に示して0の代わりに0。私の他のSharedPreferencesは素晴らしい作品です。私はどこに問題があるのか​​分からない。

+0

私は '' Number''と '' Profile''キーをどこかでインスタンス化し、それらがActivities間でマッチすると仮定します。 – harism

答えて

4

あなたが宣言したNumberとProfile変数の値が何であるかを確認したいと思います。その値をキーとして使用しているので、名前が競合している場合は、コードでも一方の設定を上書きすることができます右に見える。

私は交換をお勧めしたい本:

プライベート文字列数。
プライベートストリングプロファイル。これにより

民間最終文字列のNUMBER = "数";
プライベートfinal String PROFILE = "Profile";

そして、これらの定数を使用して、設定値を設定/取得します。

+0

はい、そうです、それはうまくいきます、ありがとうございます。しかし、なぜ私がこの問題を抱えていなかったのかは分かりません。多分、私はSharedPreferencesにただ1つの文字列しか持っていなかったでしょうか? – Adam

0

「数値」と「プロファイル」の値を設定していますか? それが問題であれば、その文字列はnullです。

+0

はい、最初のアクティビティでボタンを押すと、値はSharedPreferencesに保存されます(最初のアクティビティではSharedPreferencesに値を保存します(この場合は「1」)。ただし、 (Int ab = a.getInt(Number、1);)の値に変更すると、値は常に0です(int ab = a.getInt(Number、0);) – Adam

+0

私は、あなたのコードのどこかにNumber = "Number"を設定しています - あなたのコード例でリストした変数は初期化されていますが、設定されていません。私はSharedSettings.putInt()の設定について話していません。私はキー値として使う変数について話しています。彼らは設定されていますか? –

0

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); 

ではなく、共有好み

0

にint型を格納するとき、私はあなたのようなputIntを使用するためにしばらくの間しようとしてきた

SharedPreferences prefs = getActivity().getSharedPreferences ("PREFS_KEY", 0); 

を使用してを使用してみたが、それしてください常にエラーを返す。ただa.putStringa.putIntを変更し、私は正しい値を持つことができましたa.getStringでそれを取得することにより、

prefsEditorProfiles.putInt(Number, 1); 

だから、putIntgetIntに問題があるはずです。

とにかく、アプリケーションのために必要な正しい値を持っていることもお試しください。

関連する問題