3

我有一个带有这个适配器的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 不是我想要的。

4

0 回答 0