Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带选择器视图的Android数据绑定_Java_Android_Data Binding_Android Databinding - Fatal编程技术网

Java 带选择器视图的Android数据绑定

Java 带选择器视图的Android数据绑定,java,android,data-binding,android-databinding,Java,Android,Data Binding,Android Databinding,我想使用带有视图(收藏夹按钮)和数据绑定库的选择器。 这是我的布局: <?xml version="1.0" encoding="utf-8"?> <layout ...> <data> <variable name="obj" type="com.zor.dev.simplebelnewsreader.instance.News"/> <variable

我想使用带有视图(收藏夹按钮)和数据绑定库的选择器。 这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<layout ...>
<data>
    <variable
            name="obj"
            type="com.zor.dev.simplebelnewsreader.instance.News"/>

    <variable
            name="handler"
            type="com.zor.dev.simplebelnewsreader.handler.Handlers"/>
</data>
<View
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:id="@+id/selectorButton"
            android:onClick="@{() -> handler.setFavorite(obj)}"
            android:background="@drawable/fav_button2"
            app:selected="@{obj.favorite}"
            android:layout_marginStart="20dp"/>
这是选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
      android:state_selected="true"
      android:drawable="@drawable/ic_star_purple_a400_24dp"
      >
</item>
<item android:drawable="@drawable/star_favorite_not">

</item>


当我点击这个项目时,什么也没有。我的代码出了什么问题?

充气
数据绑定时,我只会忘记在
活动中设置数据和处理程序,如下所示:

binding.setObj(data);
binding.setHandler(new Handlers());
Xml:


我在我的实例类中使用
BaseObservable
,这一行不需要
binding.setObj(data);
binding.setHandler(new Handlers());
<View
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:id="@+id/selectorButton"
            android:onClick="@{() -> handler.setFavorite(obj)}"
            android:background="@drawable/fav_button2"
            app:selected="@={obj.favorite}"
            android:layout_marginStart="20dp"/>
public void setFavorite(News news) {
    news.setFavorite(!news.isFavorite());
    notifyPropertyChanged(BR.favorite); //'favorite' is the boolean variable name
}