如何在两个PreferenceFragmentCompat类之间传递数据?

问题描述 投票:1回答:1

我想将像[[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 }
但是在

GroupPreference

类中,当我尝试访问参数id返回nullclass 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") } }
android kotlin android-preferences
1个回答
0
投票
Preference.getExtras()中说

返回与此首选项关联的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") }

© www.soinside.com 2019 - 2024. All rights reserved.