>我参考vogella-tutorial进行数据绑定
>我要做的是:使用dataBinding检测每个Item的回收器视图行中的onClick的最佳方法是什么
activity_second.xml
rowlayout.xml
ottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dip"
android:contentDescription="Todo"
android:src="@drawable/ic_listentry"
/>
ottom="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/icon"
android:ellipsize="marquee"
android:text="@{obj.location}"
android:textSize="12sp"
android:maxLines="1"
/>
irstLine"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/secondLine"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_toRightOf="@id/icon"
android:gravity="center_vertical"
android:text="@{obj.celsius}"
android:textSize="16sp"
/>
MyAdapter.java
public class MyAdapter extends RecyclerView.Adaptertvariable(BR.obj,obj);
binding.executePendingBindings();
}
}
// Provide a suitable constructor (depends on the kind of dataset)
public MyAdapter(Listarameters
return new MyViewHolder(binding);
}
// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(MyViewHolder holder,int position) {
final TemperatureData temperatureData = data.get(position);
holder.bind(temperatureData);
}
// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return data.size();
}
}
MyAdapter.java
public class MyAdapter extends MyBaseAdapter {
List
最佳答案
不确定你是否已找到解决方案,但我设法很容易做到了.
1)修改onCreateViewHolder方法,如下所示:
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
// create a new view
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
ViewDataBinding binding = DataBindingUtil.inflate(layoutInflater,false);
MainActivityPresenter presenter = new MainActivityPresenter(this,parent.getContext());
binding.setvariable(BR.presenter,presenter);
// set the view's size,paddings and layout parameters
return new MyViewHolder(binding);
}
2)使MyAdapter实现MainActivityContract.View,最后看起来如下:
公共类MyAdapter扩展了RecyclerView.Adapter< MyAdapter.MyViewHolder>实现MainActivityContract.View
3)在MyAdapter中实现必要的方法;例如:
@Override
public void showData(TemperatureData data) {
String clickedItemCelsius = data.getCelsius();
}
viewmodels.MainActivityPresenter"/>
5)最后在RelativeLayout下挂钩你的onClick事件:
希望能帮助到你!
原文地址:https://www.jb51.cc/android/430149.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。