การตั้งค่าที่ใช้ร่วมกันใน Android

วันนี้เราจะมาดูวิธีที่ง่ายที่สุดในการจัดเก็บข้อมูลด้วยแอปพลิเคชันตัวอย่าง โดยทั่วไป เมื่อเราพูดถึงการจัดเก็บข้อมูล อันดับแรกเราจะนึกถึง SQL, MongoDB เป็นต้น แต่ในไม่ช้า เราจะเห็นว่าเราไม่จำเป็นต้องใช้สิ่งเหล่านี้สำหรับข้อมูลธรรมดา
เมื่อเราพูดถึงข้อมูลธรรมดา เรามักจะเก็บข้อมูล เช่นอายุของผู้ใช้ประเทศที่พวกเขามาจาก และการตั้งค่าที่ต้องการ ข้อมูลนี้จะไม่สูญหายแม้ว่าผู้ใช้จะปิดแอปพลิเคชัน
SharedPreferences คืออะไร?
เราสามารถเก็บข้อมูลง่ายๆ ไว้ได้โดยไม่ต้องใช้อะไรเพิ่มเติม เป็นโครงสร้างที่ทำงานร่วมกับคู่คีย์-ค่า ประเภทของข้อมูลที่เราสามารถเก็บไว้ได้จำกัด; Int, Boolean, Float, Long และ String
ลองใช้โครงสร้างนี้ในแอปพลิเคชันที่เราได้รับอายุของผู้ใช้และบันทึก (ฉันวางลิงก์ GitHub ที่นี่ )
class MainActivity : AppCompatActivity() {
private lateinit var preferences : SharedPreferences
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
preferences = this.getSharedPreferences("com.aliduman.savemyage"
, Context.MODE_PRIVATE)
}
นี้ :
เราใช้เพื่อแสดงกิจกรรมที่เราอยู่
com.aliduman.savemyage:
ในส่วนนี้จะถามเราแค่ชื่อเท่านั้น โดยทั่วไปเราจะใส่ชื่อแพ็คเกจในส่วนนี้
บริบท MODE_PRIVATE:
โหมดจะกำหนดว่าใครสามารถเข้าถึงการตั้งค่าแอพของเราได้ ส่วนตัวเป็นโหมดเริ่มต้นและตั้งค่าให้สามารถเข้าถึงได้จากแอปนี้เท่านั้น

มาใช้SharedPreferencesหลังจากสร้างคำจำกัดความและการตั้งค่าแล้ว เป้าหมายของเราคือการป้อนและบันทึกอายุของผู้ใช้ จากนั้นจัดเก็บอายุนี้และแสดงให้ผู้ใช้เห็นหลังจากปิดและเปิดแอปพลิเคชัน
var currentAge = preferences.getInt("age",-1)
getInt ():
เมธอดนี้ส่งคืนค่าที่กำหนด หากไม่สร้างมาก่อนก็จะ
อายุ:
นี่คือกุญแจสู่คุณค่าที่เราต้องการรักษาไว้
-1:
พารามิเตอร์นี้เราใช้กำหนดค่าโดยค่าเริ่มต้นหากไม่มีการป้อนข้อมูล
if (currentAge != -1) { //if user saved age before..
age_text.hint = currentAge.toString()
} else {//if first time user saved age
save_button.setOnClickListener {
var ageInput = Integer.valueOf(age_text.text.toString())
preferences.edit().putInt("age", ageInput).apply() //We save it to SharedPreferences.
}
}
แก้ไข()
เราใช้มันเพื่อเปลี่ยนแปลงหรือมอบหมายคุณค่าของเรา
putInt()
เราใช้มันเพื่อใส่ข้อมูลในสิ่งที่เราจัดเก็บ
นำมาใช้()
วิธีนี้จำเป็นสำหรับการดำเนินการเปลี่ยนแปลงเหล่านี้ทั้งหมด

ผู้ใช้ป้อนหมายเลข 23 แล้วกดปุ่มบันทึก↑

สิ้นสุดความสุข เมื่อผู้ใช้กลับเข้าสู่แอปพลิเคชัน เราสามารถแสดงอายุของผู้ใช้ด้วยอัลกอริทึมและ SharedPreferences ของเรา↑
!คำเตือน!
ฉันข้ามขั้นตอนสำคัญบางอย่าง เช่น การตรวจสอบค่า null เพื่อเน้นที่ SharedPreferences อย่าลืมตรวจสอบว่าข้อมูลที่ผู้ใช้ป้อนเป็นค่าว่างหรือไม่ รหัสสะอาด รหัสเชื่อถือได้