19

我在 xml 中设置了数据绑定,但是当我转到首选项活动以实际设置绑定时,我不能。数据绑定xml所在的文件称为preference.xml,所以我假设应该有一个名为PreferencesBinding的生成类,但实际上没有。它不应该是自动生成的吗?我在preferenceActivity.java 中的代码也不会编译以下内容:

    Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         PreferencesBinding binding = DataBindingUtil..... //what do put here ??? this is preferenceactivity not Activity

         Admin user = new Admin(true);
         binding.setUser(user);//this what i want to do

         addPreferencesFromResource(R.xml.preferences);//this would not be necessary if i can get dataBinding to work
//..rest of code not important
       }

我开始认为数据绑定不适用于偏好屏幕,有人可以帮忙吗?

如果需要,preferences.xml 文件如下所示:

 <?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:customNS="http://schemas.android.com/apk/res/mypackage"
    >
    <data>
        <variable name="admin" type="mypackage.Administration"/>
    </data>

<PreferenceScreen>

<!-- ....bunch of preferences ... -->
</PreferenceScreen>
</layout
4

2 回答 2

8

目前不支持 PreferenceScreen 的 DataBinding。这个xml的原因不是布局xml。首选项元素也根本不扩展 View 或 ViewGroup。也许将来会引入此功能,但不是现在。只有布局文件可以使用 DataBinding。

于 2018-08-22T07:55:25.480 回答
1

仍然不支持 PreferenceScreen 的 DataBinding。Android开发真的很不协调。谷歌告诉我们使用这些新的更好的技术,但是你碰壁了,不得不用旧的方式来做。你还不如一直坚持旧的方式。

于 2021-04-17T09:34:30.197 回答