RecyclerView点击跳转实现传递数据
Activity中Recyclerview中item点击事件无法再Activity中无法直接使用setOnItemClickListener()方法,但是在适配器中是可以用的
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
holder.name.setText(list.get(position));
holder.rootView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "你点击了", Toast.LENGTH_SHORT).show();
}
});
}
但是 如何进行点击跳转传值呢 ?所以我们就要在里面的点击事件干活了。 首先做一个对外暴露的接口我这里是用OnClickListerer做类名:
private OnItemClickListener mOnItemClickListener;
public interface OnItemClickListener {
void onItemClick(View view, int position);
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
}
所以我们在适适配器中点击事件的做修改了
//通过接口名调用方法
mOnItemClickListener.onItemClick(v, position);
这样适配器的工作我们就做完了,接下来做Activity中了 添加数据 创建适配器 就不说了,直接开始重点吧。
通过适配器调用内部类 内部方法,获取position。这就相当于内部点击事件把item条目位置给了接口 外部调用接口获取item
就可以进行跳转了 是不是很简单!
myAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Intent intent = new Intent(MainActivity.this, MainActivity1.class);
intent.putExtra("name",list.get(position).toString());
startActivity(intent);
}
});