import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// then you use
prefs.getBoolean("keystring", true);
ปรับปรุง
ตามการตั้งค่าที่ใช้ร่วมกัน | บทแนะนำผู้พัฒนา Android (ตอนที่ 13)โดย Sai Geetha MN,
แอปพลิเคชันจำนวนมากอาจมีวิธีในการจับภาพการตั้งค่าของผู้ใช้ในการตั้งค่าของแอปพลิเคชันเฉพาะหรือกิจกรรม เพื่อรองรับสิ่งนี้ Android ได้จัดทำ API แบบง่าย ๆ
การตั้งค่าโดยทั่วไปจะเป็นคู่ของชื่อค่า พวกเขาสามารถเก็บไว้เป็น "การตั้งค่าที่ใช้ร่วมกัน" ในกิจกรรมต่าง ๆ ในแอปพลิเคชัน (หมายเหตุปัจจุบันไม่สามารถแชร์ข้ามกระบวนการ) หรืออาจเป็นสิ่งที่ต้องจัดเก็บเฉพาะกิจกรรม
การตั้งค่าที่ใช้ร่วมกัน: การกำหนดลักษณะที่ใช้ร่วมกันสามารถใช้งานได้โดยองค์ประกอบทั้งหมด (กิจกรรมบริการและอื่น ๆ ) ของแอปพลิเคชัน
การกำหนดค่าตามความชอบของกิจกรรม: การกำหนดค่าตามความชอบเหล่านี้สามารถใช้ได้ภายในกิจกรรมเฉพาะเท่านั้นและไม่สามารถใช้โดยส่วนประกอบอื่นของแอปพลิเคชัน
การตั้งค่าที่ใช้ร่วมกัน:
การตั้งค่าที่ใช้ร่วมกันได้รับการจัดการด้วยความช่วยเหลือของgetSharedPreferences
วิธีการContext
เรียน การตั้งค่าจะถูกเก็บไว้ในไฟล์เริ่มต้น(1)หรือคุณสามารถระบุชื่อไฟล์(2)ที่จะใช้เพื่ออ้างถึงการตั้งค่า
(1) วิธีที่แนะนำคือใช้โดยโหมดเริ่มต้นโดยไม่ต้องระบุชื่อไฟล์
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
(2) นี่คือวิธีรับอินสแตนซ์เมื่อคุณระบุชื่อไฟล์
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
เป็นโหมดการทำงานสำหรับการตั้งค่า เป็นโหมดเริ่มต้นและหมายความว่าไฟล์ที่สร้างจะสามารถเข้าถึงได้โดยแอปพลิเคชันที่เรียกเท่านั้น อื่น ๆ สองโหมดการสนับสนุนและMODE_WORLD_READABLE
MODE_WORLD_WRITEABLE
ในMODE_WORLD_READABLE
แอปพลิเคชันอื่นสามารถอ่านไฟล์ที่สร้างขึ้น แต่ไม่สามารถแก้ไขได้ ในกรณีที่MODE_WORLD_WRITEABLE
แอพพลิเคชั่นอื่นมีสิทธิ์ในการเขียนสำหรับไฟล์ที่สร้างขึ้น
ในที่สุดเมื่อคุณมีอินสแตนซ์การตั้งค่านี่คือวิธีที่คุณสามารถดึงค่าที่เก็บไว้จากการตั้งค่า:
int storedPreference = preferences.getInt("storedInt", 0);
ในการจัดเก็บค่าในSharedPreference.Editor
วัตถุไฟล์การตั้งค่าจะต้องมีการใช้ Editor
เป็นอินเตอร์เฟสที่ซ้อนกันในSharedPreference
คลาส
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Editor ยังรองรับเมธอดเช่นremove()
และclear()
เพื่อลบค่าการกำหนดค่าตามความชอบจากไฟล์
การตั้งค่ากิจกรรม:
แอปพลิเคชันอื่น ๆ สามารถใช้การกำหนดลักษณะที่แชร์ได้ แต่ถ้าคุณไม่ต้องการแชร์การกำหนดค่าตามความชอบกับส่วนประกอบอื่น ๆ และต้องการให้มีการตั้งค่าส่วนตัวของกิจกรรมคุณสามารถทำได้โดยใช้getPreferences()
วิธีการของกิจกรรม getPreference
วิธีการใช้getSharedPreferences()
วิธีการที่มีชื่อของระดับกิจกรรมสำหรับชื่อไฟล์การตั้งค่าที่
ต่อไปนี้เป็นรหัสที่จะได้รับการตั้งค่า
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
รหัสสำหรับเก็บค่านั้นก็เหมือนกันในกรณีของการตั้งค่าที่ใช้ร่วมกัน
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
คุณยังสามารถใช้วิธีอื่นเช่นการจัดเก็บสถานะกิจกรรมในฐานข้อมูล หมายเหตุ Android android.preference
นอกจากนี้ยังมีแพคเกจที่เรียกว่า แพคเกจกำหนดคลาสเพื่อใช้ UI การกำหนดค่าตามความชอบ
หากต้องการดูตัวอย่างเพิ่มเติมให้ตรวจสอบโพสต์การจัดเก็บข้อมูลของ Android บนเว็บไซต์นักพัฒนา