- 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,会空指针异常。