สร้างลำดับชั้นในโค้ด เป็นส่วนหนึ่งของ Android Jetpack

คุณจะสร้างลำดับชั้นแบบเป็นโปรแกรมได้ใน onCreatePreferences() ตัวอย่างต่อไปนี้จะแสดงวิธีการแบบเป็นโปรแกรมในการสร้าง ที่สร้างผ่าน XML ใน ภาพรวม ถึง สร้างหน้าจอแบบเป็นโปรแกรม สร้างการตั้งค่าแต่ละรายการ และตั้งค่า แล้วเพิ่มลงในหน้าจอค่ากำหนด

KotlinJava
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

KotlinJava
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);
}