Mendapatkan SharedPreferences daripada PreferenceActivity dalam Android
Apabila menggunakan PreferenceActivity untuk memaparkan tetapan aplikasi, keutamaan disimpan secara automatik ke SharedPreferences semasa pengguna berinteraksi bersama mereka. Walau bagaimanapun, mengakses nama SharedPreference daripada Aktiviti lain boleh mencabar.
Menurut dokumentasi:
"Untuk mendapatkan semula contoh SharedPreferences yang akan digunakan hierarki keutamaan dalam aktiviti ini, panggil getDefaultSharedPreferences( android.content.Context) dengan konteks dalam pakej yang sama seperti ini aktiviti."
Penyelesaian:
Untuk mendapatkan semula nama SharedPreferences daripada Aktiviti lain, gunakan kod berikut:
import android.preference.PreferenceManager; SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Kod ini mendapatkan semula Contoh SharedPreferences menggunakan konteks aplikasi, yang sepadan dengan pakej PreferenceActivity.
SharedPreferences dan Keutamaan dikendalikan Aktiviti
SharedPreferences, seperti yang dinyatakan dalam dokumentasi, boleh digunakan merentas aktiviti dan perkhidmatan dalam aplikasi, manakala pilihan dikendalikan aktiviti adalah khusus untuk aktiviti tertentu.
Menggunakan SharedPreferences
Untuk pilihan dikongsi, adalah disyorkan untuk menggunakan mod lalai tanpa menyatakan nama fail:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
Walau bagaimanapun, anda juga boleh menentukan nama fail:
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
Untuk mendapatkan semula nilai yang disimpan:
int storedPreference = preferences.getInt("storedInt", 0);
Untuk menyimpan nilai:
SharedPreferences.Editor editor = preferences.edit(); editor.putInt("storedInt", storedPreference); // value to store editor.commit();
Menggunakan Keutamaan dikendalikan Aktiviti
Untuk menggunakan pilihan khusus untuk aktiviti:
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
Atas ialah kandungan terperinci Bagaimanakah Saya Mengakses SharedPreferences daripada PreferenceActivity dalam Aktiviti Android Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!