我有一个带有这个适配器的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次(错过的))。
这里有什么问题?解决方案?
PS 为 ListView 设置 OnItemClickListener 不是我想要的。