Android Data Binding将参数传递给onClick方法 [英] Android Data Binding pass arguments to onClick method
本文介绍了Android Data Binding将参数传递给onClick方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可以使用数据绑定库将自定义参数传递给onClick方法?我有我的布局xml文件,我需要使用onClickListener:
<?xml version =1.0encoding =utf -8?>
< layout ...>
< data>
< variable
name =viewModel
type =com.productivity.tiktak.ui.tracker.viewModel.CategoryViewModel/>
< variable
name =callback
type =com.productivity.tiktak.ui.tracker.TrackerAdapter/>
< / data>
< android.support.v7.widget.CardView
android:onClick =@ {callback.onCategoryClick(viewModel)}
...
android :layout_width =match_parent
android:layout_height =wrap_content>
<! - - 一些垃圾 - >
< /android.support.v7.widget.CardView>
< / layout>
并且有一个点击处理程序:
public void onCategoryClick(View view,CategoryViewModel categoryViewModel){
pre>
//处理程序代码...
}
可以将我的CategoryViewModel对象从xml传递给点击处理程序?
解决方案您可以使用lambda表达式。
android:onClick =@ {() - > callback.onCategoryClick (viewModel)}
如果您需要该视图,您也可以传递: p>
android:onClick =@ {(v) - > callback.onCategoryClick(v,viewModel)}
It's possible to pass custom arguments to onClick method using Data Binding Library? I have my layout xml file where i need to use onClickListener:
<?xml version="1.0" encoding="utf-8"?> <layout ...> <data> <variable name="viewModel" type="com.productivity.tiktak.ui.tracker.viewModel.CategoryViewModel"/> <variable name="callback" type="com.productivity.tiktak.ui.tracker.TrackerAdapter"/> </data> <android.support.v7.widget.CardView android:onClick="@{callback.onCategoryClick(viewModel)}" ... android:layout_width="match_parent" android:layout_height="wrap_content"> <!-- ... Some trash --> </android.support.v7.widget.CardView> </layout>
and a have my click handler:
public void onCategoryClick(View view, CategoryViewModel categoryViewModel){ //handler code... }
it's possible to pass my CategoryViewModel object from xml to click handler?
解决方案You can use a lambda expressions.
android:onClick="@{() -> callback.onCategoryClick(viewModel)}"
If you need the view, you can pass that as well with:
android:onClick="@{(v) -> callback.onCategoryClick(v, viewModel)}"
这篇关于Android Data Binding将参数传递给onClick方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文