RecyclerView点击事件的不同效果

今天解决的是recyclerview点击事件

实现功能是点击每个不同的item呈现不同的界面

思路:从 单个item点击的时候 拿到 师傅的 id 然后通过intent传值并且跳转到详情页面
id 在点击的时候 itemclicklistener 已经 通过 data数据传过去了

在adapter设置点击事件回调接口:
public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) {
this.mOnItemClickListener = mOnItemClickListener;
}
public interface OnItemClickListener {
void onItemClick(View view,int position,MasterBean.Master data);
}
其中MasterBean.Master 为对应item的集合数据

ViewHolder的代码如下:
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
        TextView masterName;
        TextView masterjobName;
        TextView masterGoodRate;
        ImageView masterHead;
        TextView masterevaluationSum;

        public ViewHolder(View view){
            super(view);
            view.setOnClickListener(this);

            masterName = (TextView)view.findViewById(R.id.master_name);
            masterjobName = (TextView)view.findViewById(R.id.master_recyclerview_item_jobName);
            masterGoodRate = (TextView)view.findViewById(R.id.master_recyclerview_item_goodRate);
            masterHead = (ImageView)view.findViewById(R.id.master_recyclerview_item_head);
            masterevaluationSum = (TextView)view.findViewById(R.id.master_recyclerview_item_evaluationSum);
        }

        @Override
        public void onClick(View v) {
            int position = getAdapterPosition();
            if (mOnItemClickListener != null) {
                mOnItemClickListener.onItemClick(v, position, mMasterList.get(position));
            }
        }

    }

其中尤为关键的代码是view.setOnClickListener(this); 这表示为adapter添加点击监听事件
接下来的onClick方法就是给mOnItemClickListener进行赋值

最后在实现类中设置adapter的点击事件,如下:

adapter = new MasterAdapter(getContext(), mMasterList);
        adapter.setOnItemClickListener(new MasterAdapter.OnItemClickListener<MasterBean.Master>() {
            @Override
            public void onItemClick(View view, int position, MasterBean.Master data) {
                mExcellentMasterId = data.id;
                Intent intent = new Intent(getContext(), MasterDetailsActivity.class);
                intent.putExtra("MasterId",mExcellentMasterId);
                startActivity(intent);
                Log.d(TAG, "onItemClick: " + mExcellentMasterId);
            }
        });

Intent的主要作用是为跳转的界面进行传值,然后在跳转的界面中进行接收并且赋值,从而让界面达到不同的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值