一:adapter中
//自定义接口 public interface OnItemClickListener { public void onItemClick(View view, int postion); }
private OnItemClickListener mListener;// 声明自定义的接口 public void setmListener(OnItemClickListener mListener) { this.mListener = mListener; }
@Override public void onBindViewHolder(@NonNull ShowViewHolder holder, final int position) { //Glide.with(context).load(list.get(position).getImages().split("\\|")[0]).into(holder.iv_img); ImageLoader.getInstance().displayImage(list.get(position).getImages().split("\\|")[0],holder.iv_img); holder.tv_title.setText(list.get(position).getTitle()); holder.tv_price.setText("¥"+list.get(position).getPrice()); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /*Intent intent = new Intent(context, DetailsActivity.class); intent.putExtra("pid",list.get(position).getPid()); intent.putExtra("url",list.get(position).getDetailUrl()); context.startActivity(intent);*/ // getpostion()为Viewholder自带的一个方法,用来获取RecyclerView当前的位置,将此作为参数,传出去 mListener.onItemClick(v, position); } }); }
二:Activity中调用
@Override public void onSuccess(final ShowBean showBean) { runOnUiThread(new Runnable() { @Override public void run() { adapter = new ShowAdapter(ShowActivity.this, showBean.getData()); recyclerView.setAdapter(adapter); adapter.setmListener(new ShowAdapter.OnItemClickListener() { @Override public void onItemClick(View view, int postion) { Intent intent = new Intent(ShowActivity.this, DetailsActivity.class); intent.putExtra("pid",showBean.getData().get(postion).getPid()); intent.putExtra("url",showBean.getData().get(postion).getDetailUrl()); startActivity(intent); } }); } }); }