[英]Android DataBinding with selector view
I want to use selector with view (favorite button) and Data Binding library. 我想将选择器与视图(收藏夹按钮)和数据绑定库一起使用。 This is my layout:
这是我的布局:
<?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"/>
This is my Handler
: 这是我的
Handler
:
public void setFavorite(News news) {
news.setFavorite(!news.isFavorite());
}
and this is selector
: 这是
selector
:
<?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>
And nothing, when i clicked item. 什么也没有,当我单击项目时。 What wrong in my code?
我的代码有什么问题?
I only forget to set data and handler in my Activity
when inflate DataBinding
like this: 这样膨胀
DataBinding
时,我只会忘记在Activity
设置数据和处理程序:
binding.setObj(data);
binding.setHandler(new Handlers());
Xml: Xml:
<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"/>
Handler: 处理程序:
public void setFavorite(News news) {
news.setFavorite(!news.isFavorite());
notifyPropertyChanged(BR.favorite); //'favorite' is the boolean variable name
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.