如何在数据绑定库中使用recycleView?

时间:2019-03-24 12:37:23

标签: android android-recyclerview android-jetpack

我想按照MVVM原理使用ViewModel和数据绑定创建回收视图。但是我不知道如何在onCreateViewHolder()中创建数据绑定。我该怎么办?

override fun onCreateViewHolder(parent: ViewGroup,
                                viewType: Int): MyAdapter.MyViewHolder {
    // create a new view
    val inflator = LayoutInflater.from(parent.context)

    val listItemBinding :ResItemBinding = DataBindingUtil.inflate(inflator, R.layout.res_item, parent, false)
    // set the view's size, margins, paddings and layout parameters
    return MyViewHolder(listItemBinding.root)
}

我尝试了上述解决方案,但无法正常工作

2 个答案:

答案 0 :(得分:2)

您可以按以下方式使用数据绑定

private YourAdapterBinding mYourAdapterBinding

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        mYourAdapterBinding =   DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),R.layout.your_custome_layout,parent,false);
        View itemView = mYourAdapterBinding.getRoot();
        return new ViewHolder(itemView);
    }


     @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) {

        Guide guide = mGuideOptionList.get(position);
        viewHolder.textView.setText(mYourAdapterList.get(position).getTitle());
        viewHolder.parent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mYourListItem.onItemClick((int) v.getTag(),v);
            }
        });

        mYourAdapterBinding.executePendingBindings();
    }


     @Override
    public long getItemId(int position) {
        return super.getItemId(position);
    }

答案 1 :(得分:0)

搜索3天后,我找不到适合我的任何东西。但是JetPack Sunflower应用程序使用了ListAdapter的数据绑定。因此,如果有人遇到此问题,请使用ListAdapter而不是Adapter。希望对别人有帮助