Android yang setara dengan NSUserDefaults di iOS


103

Saya ingin menyimpan beberapa data sederhana. Di iPhone, saya bisa melakukannya denganNSUserDefaults di Objective-C.

Apa perintah serupa di sini di Android?

Saya hanya menyimpan beberapa variabel, untuk digunakan kembali selama aplikasi diinstal. Saya tidak ingin menggunakan database yang rumit hanya untuk melakukan itu.

Jawaban:


210

Ini adalah solusi paling sederhana yang saya temukan:

//--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);  

Di mana 'konteks' adalah konteks saat ini (misalnya dalam subkelas kegiatan bisa jadi ini ).


ini adalah cara untuk menyimpan hal-hal yang sangat sederhana, sederhana dan langsung ke intinya
smith324

Saya memperbaiki kesalahan dalam kode (memanggil getPreferences yang tidak ada, bukan getSharedPreferences).
Ben Clayton

14
Pembaruan 2015: Android merekomendasikan penggunaan apply () now over commit () karena apply () beroperasi pada thread latar belakang alih-alih menyimpan data persisten dengan segera dan kemungkinan memblokir thread utama.
AppsIntheParkNYC

Apakah ada cara untuk mengakses SharedPreferences ini dari kode jni?
IgorGanapolsky

2
Untuk mendapatkan 'konteks' dari dalam AppCompatActivity, Anda dapat menggunakangetApplicationContext()
Brainware
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.