listview中“点击”和“长按”的事件焦点问题

在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版权协议,转载请附上原文出处链接和本声明。