iOSのNSUserDefaultsに相当するAndroid


103

簡単なデータを保存したいのですが。iPhoneではNSUserDefaults、Objective-Cでそれを行うことができます。

ここでAndroidの同様のコマンドは何ですか?

アプリケーションがインストールされている限り再利用できるように、いくつかの変数を保存しています。そのためだけに複雑なデータベースを使いたくありません。

回答:


210

これは私が見つけた最も簡単な解決策です:

//--Init
int myvar = 12;


//--SAVE Data
SharedPreferences preferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);  
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("var1", myvar);
editor.commit();


//--READ data       
myvar = preferences.getInt("var1", 0);  

ここで、 'context'は現在のコンテキストです(たとえば、アクティビティーのサブクラスではthisの場合があります)。


これは非常に単純なものを格納するための方法です。単純で
要点

コードのエラーを修正しました(getSharedPreferencesではなく、存在しないgetPreferencesを呼び出していました)。
Ben Clayton、

14
2015年更新:apply()は永続データをすぐに保存してメインスレッドをブロックするのではなくバックグラウンドスレッドで動作するため、commit()ではなくapply()を使用することをお勧めします。
AppsIntheParkNYC 2015

jniコードからこのSharedPreferencesにアクセスする方法はありますか?
IgorGanapolsky

2
内から「コンテキスト」を取得するには AppCompatActivity、次を使用できますgetApplicationContext()
Brainware
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.