在listview中有onItemClickListener和onItemLongClickListener两种事件监听器。在实际开发中会碰到事件焦点抢夺问题,问题代码入下:
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Log.i("INFO", "执行了onItemClick()函数");
}
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Log.i("INFO", "执行了onItemLongClick()函数");
return false;
}这时如果选择“长按”则程序的执行结果将先打印”执行了onItemClick()函数“,再打印”执行了onItemLongClick()函数“。显然这样的结果不是我们想要的。如果我们只要执行onItemLongClick()函数,只需要将 onItemLongClick()返回值改为true。最终代码为:public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Log.i("INFO", "执行了onItemClick()函数");
}
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Log.i("INFO", "执行了onItemLongClick()函数");
return true;
}这样长按便值打印出:”执行了onItemLongClick()函数“
版权声明:本文为qq_30903705原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。