我使用此适配器 ListView :
适配器
public class MenuAdapter extends BaseAdapter{
private List<ViewDataBinding> bindings = new ArrayList<>();
public MenuAdapter(){
FirstBinding binding = FirstBinding.inflate(inflater);
FirstModel model = ...;
binding.setModel(model);
bindings.add(binding);
SecondBinding secondBinding = SecondBinding.inflate(inflater);
SecondModel secondModel = ...;
binding.setModel(secondModel);
bindings.add(secondBinding);
}
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return bindings.get(position).getRoot();
}
...
}
first.xml (绑定的第一个布局)
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
...
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/menu_row_height"
android:background="@color/menu_application_background"
>
...
<Button
...
android:onClick="@{model.onClick}"
/>
</RelativeLayout>
</layout>
实际上这个 onClick 没有按预期工作...点击按钮,它不会从我的模型中调用onClick ..但是在尝试滚动列表之后..对所有错过的调用onClick调用(例如,我可以连续3次点击按钮...但是没有调用onClick。滚动我的列表视图后,onClick被调用3次(错过了)。
这里有什么问题?溶液
P.S。为ListView设置OnItemClickListener不是我想要的。