2016-05-23 6 views
-2

私はこのような共有好みに動的な値を格納しています:SharedPreference要素をオブジェクトとして取得できますか?

public static void loginSessionsStoreValue(Map<String, Object> mapData) { 
    for (Map.Entry<String, Object> entry : mapData.entrySet()) { 
     String keyName = entry.getKey(); 
     Object value = entry.getValue(); 
     if (value instanceof String) { 
      sf_login_edit.putString(keyName, (String) value); 
     } 
     else if (value instanceof Boolean) { 
      sf_login_edit.putBoolean(keyName, (boolean) value); 
     } 
     else if (value instanceof Integer) { 
      sf_login_edit.putInt(keyName, (int) value); 
     } 
    } 
    sf_login_edit.putBoolean("isLogin", true); 
    sf_login_edit.commit(); 
} 

どのように私はオブジェクトとして値を取得することができます... 多分sf_login.getObject(key, failedValue)

私はあなたの問題やコメントをもとに

+0

なぜ私はこれをマイナスにしますか? 最後に誰かがこの質問に答えるだけで、私は彼の答えの下で答えることができました。そして、彼の答えは見えません... そしてマイナスになりますか? @Akeshwar ...どうすればいいですか? –

+0

downvotingについての考えはありません。回答を書いた人が削除した可能性があります。だからあなたはそれを見ることができないのです。ところで、 'sf_login.getObject(key、failedValue)'は使用できません。あなたは 'sf_login_edit.putBoolean(key、failedValue);を意味しましたか?あなたは 'sf_login'をどこに定義したのか分かりません。 –

+0

yups sf_loginを定義する方法を示していません... public static SharedPreferences sf_login; static SharedPreferences.Editor sf_login_edit; 私も答えがあります... 次に何をすればいいですか? –

答えて

0

...のインスタンスを確認することができますので、私はオブジェクトとして持っている場合は、私が提案する整数または文字列

として、私は、キーストアの可能な原因を必要とします

JSON応答を読み取っているときに、サーバーから整数を受け取っている場合は、文字列に変換してください。あなたが文字列を受け取っているなら、あなたは良いです。

これで、sharedPrefsに簡単に格納できるStringデータ型のみが作成されました。

BONUS:サーバーから整数43452を受け取っているとします。それを文字列に変換します。

文字列値= "int" + 43452;

この "int"接頭辞は、値が整数から文字列に変換されたかどうかを確認するのに役立ちます。後で、同じ値をサーバーに渡すときは、 "int"プレフィックスをチェックし、存在する場合は切り落とすことができます。

+0

私はそれを試してみてください... –

関連する問題