在adapter中
修改 ViewHolder的代码 如下
public class ViewHolder extends RecyclerView.ViewHolder {
View fruitView;
TextView fruitName;
/**
* @param itemView RecyclerView子项最外层布局
*/
public ViewHolder(View itemView) {
super(itemView);
fruitView = itemView;
fruitName = (TextView) itemView.findViewById(R.id.tv_name);//找到该布局中的实例
}
}
找到这每个Item的View
在onCreateViewHolder 方法中修改如下
/**
* 创建ViewHolder的实例
* @param parent
* @param viewType
* @return
*/
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit,parent,false);//传入布局
final ViewHolder holder = new ViewHolder(view);//创建一个ViewHolder实例 并绑定布局
holder.fruitView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = holder.getAdapterPosition();
Fruit fruit = mFruitList.get(position);
Toast.makeText(v.getContext(),fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
holder.fruitName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = holder.getAdapterPosition();
Fruit fruit = mFruitList.get(position);
Toast.makeText(v.getContext(),"you click text:"+fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
return holder;//将ViewHolder实例返回
}
这里 为了区别 点击 条目 和 点击 条目中的子控件 Toast的内容不同