SingleTypeAdapter 好友列表

RecyclerView Adapter与DataBinding封装

效果图

1、创建一个类,并继承ViewHolderr

创建一个自己的ViewHolder,如果使用父类,则和SimpleAdapter用法一样。

public class MySingelTypeHolder extends ViewHolder {
    public MySingelTypeHolder(@NonNull ItemFriendBinding binding) {
        super(binding);
        //为头像添加点击事件和长按事件
        binding.ivHeadPortrait.setOnClickListener(this);
        binding.ivHeadPortrait.setOnLongClickListener(this);
    }
}

2、创建一个类,并继承SingleTypeAdapter

注意这里的泛型参数,第三个参数使用的是上面创建的ViewHolder

/**
 * 好友列表适配器
 * 继承SingleTypeAdapter,可自定义viewholder
 */
public class MySingelTypeAdapter extends SingleTypeAdapter {

    @Override
    protected void onBindViewHolder(int position, MySingelTypeHolder viewHolder) {
        viewHolder.getBinding().setFriendInfo(getDataList().get(position));
    }
}

3、实例化对象并设置点击事件

mSingelTypeAdapter = new MySingelTypeAdapter();
mSingelTypeAdapter.setOnItemClickListener(binding ->
        Toast.makeText(this, "您点击了:" + binding.getFriendInfo().getName(),
                Toast.LENGTH_SHORT).show()
);
mSingelTypeAdapter.setOnItemLongClickListener(itemFriendBinding -> {
    Toast.makeText(this, "您长按了:" + itemFriendBinding.getFriendInfo().getName(),
            Toast.LENGTH_SHORT).show();
});
mSingelTypeAdapter.setOnClickListener((view, itemFriendBinding) ->
        Toast.makeText(this, "您点击了:" + itemFriendBinding.getFriendInfo().getName()
                + "的头像", Toast.LENGTH_SHORT).show()
);
mSingelTypeAdapter.setOnLongClickListener((view, itemFriendBinding) ->
        Toast.makeText(this, "您长按了:" + itemFriendBinding.getFriendInfo().getName()
                + "的头像", Toast.LENGTH_SHORT).show()
);

4、为RecyclerView设置Adapter

mRecyclerView.setAdapter(mSingelTypeAdapter);

5、刷新或写入数据

mSingelTypeAdapter.refresh(mFriendInfos);
mSingelTypeAdapter.add(mFriendInfos);

你可能感兴趣的:(SingleTypeAdapter 好友列表)