无法在 Android 的 Jetpack 首选项中找到 "extra" 属性

Not able to find "extra" attribute in jetpack preference in Android

我正在尝试构建设置类型的应用程序,我选择使用首选项来构建 UI。 我正在使用喷气背包首选项 (androidx.preference.Preference) , 如果我想启动带有一些附加功能的片段,可以使用下面的正常首选项。

   <com.android.xyz.ItemsTextPreference
  android:key="xyz"
  android:title="Fragment One"
  android:visibility="invisible"
  android:fragment="com.android.xyz.MyFragment"
  <extra android:name="one" android:value="first fragment" />
</com.android.xyz.ItemsTextPreference>

但在 Jetpack 首选项中,没有“额外”属性。

还有其他方法可以从偏好视图发送额外内容吗?

尝试将您的额外属性包装在 intent 属性中 像这样:

<com.android.xyz.ItemsTextPreference
    android:key="xyz"
    android:title="Fragment One"
    android:visibility="invisible">
   <intent android:action="your_action" >
         <extra android:name="one" android:value="first fragment" />
    </intent>        

</com.android.xyz.ItemsTextPreference>

我找到了解决方案,之前我的首选项屏幕只有以下架构,来自 jetpack。

 <PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">

从 android 的传统偏好中添加一个架构后,如下所示。

<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:android="http://schemas.android.com/apk/res/android">

我可以使用组合来达到效果。

<com.android.xyz.ItemsTextPreference
    android:key="xyz"
    android:title="Fragment One"
    app:isPreferenceVisible="false">
   <extra android:name="one" android:value="first fragment" />
</com.android.xyz.ItemsTextPreference>