2016-09-30 7 views
1

私は共有優先していくつかの値を格納していますが、私はコードを検査するとき、それは、対応する(コミットせずアンドロイドのSharedPreferenceエラーを解決するにはどうすればよいですか?

SharedPreferences.edit()を与える)または(適用) 呼び出したアプリケーションを持っています。

この警告を解決する方法あなたは

commit() 

メソッドを呼び出す必要が共有設定に変更を加えるために

private SharedPreferences m_Preference; 
private SharedPreferences.Editor m_Editor; 

m_Preference = context.getSharedPreferences(CStaticVar.DEAL_DOWNLOADED,Context.MODE_PRIVATE); 
m_Editor = m_Preference.edit(); 
        m_Editor.putInt("dealDonloadedcount",0); 
        m_Editor.apply(); 
+0

アンドロイド版をお使いですか?投稿したアラートはエラーまたはアラートですか? –

答えて

0

- :共有好みのために

は、私は下記のコードを使用しています。 (Androidの公式ドキュメントから)

例のAndroid公式ドキュメントで

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt(getString(R.string.saved_high_score), newHighScore); 
editor.commit(); 

より:

+0

しかし、私はapply()を使っています – Rakesh

+0

@Rakesh mybeこれはLintの警告ですか?プロジェクトをリフレッシュしてLintエラーをクリーンアップして再度ビルドしようとしましたか? – Rafal

+0

'commit()'メソッドは変更に時間がかかりますが、** Shared Preferences **のインスタントセーブには 'apply()'を使うことができます。 –

-1

あなたが共有好みに変更した場合は、コミットする必要があるため​​()または適用()。 それ以外の意味はありません。その特定の行の黄色のマークをクリックして警告を消し、検査を無効にする。

+0

私はあなたが説明しようとしていることを理解していません – Rakesh

+0

もう少し.... – Rakesh

+0

偶然のように見える – Rakesh

-1

使用

editor.apply(); 
0

の代わりに

editor.commit(); 

クラスPreferencesHelper.javaを作成し

public class PreferencesHelper { 

    private SharedPreferences sharedPreferences; 
    private SharedPreferences.Editor editor; 

    public PreferencesHelper(Context context) { 
     this.sharedPreferences = context.getSharedPreferences("MyPreference", 0); 
     this.editor = sharedPreferences.edit(); 
    } 

    public String GetPreferences(String key) { 
     return sharedPreferences.getString(key, ""); 
    } 

    public void SavePreferences(String key, String value) { 
     editor.putString(key, value); 
     editor.commit(); 
    } 
} 

次に、あなたの活動に以下のコードを使用することができます

PreferencesHelper pref = new PreferencesHelper(YourActivity.this); 
//To Save Preferences 
pref.SavePreferences("key",value); 
//To Get Preferences 
pref.GetPreferences("key"); 
+0

とint値を格納しint値を取得したい場合はどうですか? – Rakesh

+0

@Rakesh pref.SavePreferences( "key"、String.valueOf(int value)); –

関連する問題