Android - 使用DataBinding绑定Preference活动

22

我在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

你还没有解决这个问题吗? - Yurii Tsap
我无法让数据绑定与SharedPreferences一起工作,因此我重新编写了我的代码。 - j2emanue
1
你能否提供一个解决方案并回答自己的问题,因为我也遇到了同样的问题。谢谢! - Yurii Tsap
2
我回到那个项目去检查了一下我做的事情。我没有使用数据绑定来处理sharedPreferences。我无法让xml首选项文件与preferenceactivity通信,所以我只能在代码中更新视图。很抱歉帮不上更多忙,但我真的希望能够帮助。 - j2emanue
2个回答

10

目前不支持PreferenceScreen的DataBinding。这是由于xml不是布局xml造成的。此外,preference元素根本没有扩展View或ViewGroup。也许将来会引入此功能,但现在不行。只有布局文件可以使用DataBinding。


5

PreferenceScreen的数据绑定仍不受支持。Android开发真的不一致。Google告诉我们使用这些新的更好的技术,但是你会遇到瓶颈,不得不以旧有的方式处理。你最好一直坚持使用老方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接