إنشاء تدرج هرمي في التعليمة البرمجية جزء من 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); }