public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
//绑定缓存行
Fruit f = fruitList.get(position);
holder.img.setImageResource(f.getId());
holder.tv.setText(f.getName());
//console
holder.img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String str = "您点击了" + holder.tv.getText() + "的图片";
//判断是否未第一次点击,如果是就创建消息对象
if (to == null) {
to = Toast.makeText(text2.this, str, Toast.LENGTH_SHORT);
} else {
//不是就清除上一次未执行完的消息,直接执行本次消息
to.cancel();
to = Toast.makeText(text2.this, str, Toast.LENGTH_SHORT);
}
to.show();
}
});
// holder.rowView.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// Toast.makeText(text2.this,"您点击了"+holder.tv.getText(),Toast.LENGTH_LONG).show();
// }
// });
}
为了避免多次点击,造成事件队列堆积,用户体验极差!!!
所以呢,我们就创建一个全局变量:
private Toast to;第二次点击的时候,直接把上一次的消息弹框清除掉,执行新的消息弹框~
这里为什么不取消if呢,因为第一次为null,会空指针异常。