2016-10-04 7 views
0

に保存していないが、私はSharedPreferenceを保存するために使用されるコードです:SharedPreferencesは、以下のいくつかのAndroidのバージョン

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
SharedPreferences.Editor editor = preferences.edit(); 

editor.putString("deliveryId", obj.get("deliveryId").toString()); 
editor.commit(); 

これは、一部のデバイスで作業していて、一部のデバイスでは動作しません。 KitKatに取り組んでいますが、JellyBeanとLollipopでは動作しません。続き

は、私は、データを取得するために使用されるコードです:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 
String deliveryId = preferences.getString("deliveryId", "0"); 

は常にいくつかのデバイス上で、デフォルト値、すなわち0を与えます。

SharedPreferences preferences = getSharedPreferences("<Pref Name>", MODE_PRIVATE); 
String deliveryId = preferences.getString("deliveryId", "0"); 

ハッピーコーディング:

+0

デフォルトの共有設定の代わりにキーを使用してください(一般的な方法で)(http://stackoverflow.com/a/5950109/4700782) –

+0

'obj.get(" deliveryId ")。toString () 'が0になるか、以前のAPK +をアンインストールしてクリーンビルドをインストールする必要があります。 – Sufian

+0

'getDefaultSharedPreferences(getApplicationContext())'と '.getDefaultSharedPreferences(context)'です。どのようなコンテキストを使用しているか教えてください。 – greenapps

答えて

1

は、私はあなたのデータを取得するために保存SharedPreferences

SharedPreferences preferences = getSharedPreferences("<Pref Name>", MODE_PRIVATE); 
SharedPreferences.Editor editor = preferences.edit(); 

editor.putString("deliveryId", obj.get("deliveryId").toString()); 
editor.commit(); 

については、以下のようにしてみてくださいのデフォルト優先順位は、問題を作成すると思います!

+0

これは** getDefaultSharedPreferences **よりも優れていますか? –

+1

@IgorGanapolsky率直に言って、私はなぜgetDefaultSharedPreferencesを使用しないのか正確にはわかりませんが、詳細については下のリンクを参照してください。 https://code.google.com/p/android/issues/detail?id=14359 –

関連する問題