สร้างลำดับชั้นในโค้ด เป็นส่วนหนึ่งของ Android Jetpack
คุณจะสร้างลำดับชั้นแบบเป็นโปรแกรมได้ใน
onCreatePreferences()
ตัวอย่างต่อไปนี้จะแสดงวิธีการแบบเป็นโปรแกรมในการสร้าง
ที่สร้างผ่าน XML ใน
ภาพรวม ถึง
สร้างหน้าจอแบบเป็นโปรแกรม สร้างการตั้งค่าแต่ละรายการ และตั้งค่า
แล้วเพิ่มลงในหน้าจอค่ากำหนด
Kotlin
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { val context = preferenceManager.context val screen = preferenceManager.createPreferenceScreen(context) val notificationPreference = SwitchPreferenceCompat(context) notificationPreference.key = "notifications" notificationPreference.title = "Enable message notifications" val feedbackPreference = Preference(context) feedbackPreference.key = "feedback" feedbackPreference.title = "Send feedback" feedbackPreference.summary = "Report technical issues or suggest new features" screen.addPreference(notificationPreference) screen.addPreference(feedbackPreference) preferenceScreen = screen }
Java
@Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { Context context = getPreferenceManager().getContext(); PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(context); SwitchPreferenceCompat notificationPreference = new SwitchPreferenceCompat(context); notificationPreference.setKey("notifications"); notificationPreference.setTitle("Enable message notifications"); Preference feedbackPreference = new Preference(context); feedbackPreference.setKey("feedback"); feedbackPreference.setTitle("Send feedback"); feedbackPreference.setSummary("Report technical issues or suggest new features"); screen.addPreference(notificationPreference); screen.addPreference(feedbackPreference); setPreferenceScreen(screen); }
การเพิ่ม
PreferenceCategory
คือ
คล้ายกัน ตัวอย่างต่อไปนี้จะแสดงวิธีการแบบเป็นโปรแกรมในการสร้าง
หน้าจอค่ากำหนดที่ปรากฏใน
จัดระเบียบการตั้งค่า
ระบบจะเพิ่มรายการย่อยใน PreferenceCategory
ไม่ใช่ระดับรูท
PreferenceScreen
Kotlin
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { val context = preferenceManager.context val screen = preferenceManager.createPreferenceScreen(context) val notificationPreference = SwitchPreferenceCompat(context) notificationPreference.key = "notifications" notificationPreference.title = "Enable message notifications" val notificationCategory = PreferenceCategory(context) notificationCategory.key = "notifications_category" notificationCategory.title = "Notifications" screen.addPreference(notificationCategory) notificationCategory.addPreference(notificationPreference) val feedbackPreference = Preference(context) feedbackPreference.key = "feedback" feedbackPreference.title = "Send feedback" feedbackPreference.summary = "Report technical issues or suggest new features" val helpCategory = PreferenceCategory(context) helpCategory.key = "help" helpCategory.title = "Help" screen.addPreference(helpCategory) helpCategory.addPreference(feedbackPreference) preferenceScreen = screen }
Java
@Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { Context context = getPreferenceManager().getContext(); PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(context); SwitchPreferenceCompat notificationPreference = new SwitchPreferenceCompat(context); notificationPreference.setKey("notifications"); notificationPreference.setTitle("Enable message notifications"); PreferenceCategory notificationCategory = new PreferenceCategory(context); notificationCategory.setKey("notifications_category"); notificationCategory.setTitle("Notifications"); screen.addPreference(notificationCategory); notificationCategory.addPreference(notificationPreference); Preference feedbackPreference = new Preference(context); feedbackPreference.setKey("feedback"); feedbackPreference.setTitle("Send feedback"); feedbackPreference.setSummary("Report technical issues or suggest new features"); PreferenceCategory helpCategory = new PreferenceCategory(context); helpCategory.setKey("help"); helpCategory.setTitle("Help"); screen.addPreference(helpCategory); helpCategory.addPreference(feedbackPreference); setPreferenceScreen(screen); }