สร้างลำดับชั้นในโค้ด เป็นส่วนหนึ่งของ Android Jetpack
คุณจะสร้างลำดับชั้นแบบเป็นโปรแกรมได้ใน
onCreatePreferences()
ตัวอย่างต่อไปนี้จะแสดงวิธีการแบบเป็นโปรแกรมในการสร้าง
ที่สร้างผ่าน XML ใน
ภาพรวม ถึง
สร้างหน้าจอแบบเป็นโปรแกรม สร้างการตั้งค่าแต่ละรายการ และตั้งค่า
แล้วเพิ่มลงในหน้าจอค่ากำหนด
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
}
@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
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
}
@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);
}