我想将像[[id这样的数据传递给另一个PreferenceFragmentCompat类,以便我可以使用组ID配置该特定组。为了在2个首选项片段之间导航,您可以在首选项xml文件中或通过代码指定app:fragment,并设置参数:
val bundle = Bundle()
bundle.putString("id", "group id")
val preference = Preference(context).apply {
title = "group name"
key = "key"
fragment ="io.foodless.fragments.preferences.GroupPreference"
arguments = bundle
}
但是在类中,当我尝试访问参数id返回nullGroupPreference
class GroupPreference:PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.group_preference,rootKey)
val groupId = arguments?.getString("id")
Log.d("debug","data $groupId")
}
}
返回与此首选项关联的extras Bundle对象,如果当前没有一个Bundle,则创建一个新Bundle。您可以使用它来获取和设置单个额外的键/值对。
因此,我没有制作一个新的捆绑包,而是调用了preference.getExtras(),它起作用了:
val preference = Preference(context).apply {
title = "group name"
key = "key"
fragment ="io.foodless.fragments.preferences.GroupPreference"
val bundle = extras
bundle.putString("id", "group id")
}