正文
点击事件-click,longclick
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
今天在修改一个问题的时候,遇到了click,longclick事件触发情况。记录下来。
代码
tView.setOnLongClickListener(new OnLongClickListener() { @Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
Log.e("123", "longclick");
return true;
}
});
tView.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.e("123", "click"); }
});
打印的log如下
- ::01.324: E/(): longclick
当我们把longclick返回值修改为false的时候,结果如下
- ::51.749: E/(): longclick
- ::52.355: E/(): click
我们可以得到如下结论
longclick事件能不能触发click时间,主要是看longclick的返回值
1.return false-继续执行click事件
2.return true -不再执行click事件
当然,这个问题还不是绝对的,还有其他情况发生。如下代码
tView.setOnLongClickListener(new OnLongClickListener() { @Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
Log.e("123", "longclick");
//Toast.makeText(MainActivity.this, "hehehe", Toast.LENGTH_LONG).show();
Dialog dialog = new Dialog(MainActivity.this);
dialog.setTitle("hehe");
dialog.setOnCancelListener(new OnCancelListener() { @Override
public void onCancel(DialogInterface arg0) {
// TODO Auto-generated method stub }
});
dialog.show();
return false;
}
});
tView.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.e("123", "click"); }
});
这时候你会发现,弹出来dialog以后,click并不会执行。感觉应该是焦点传递造成的。