public abstract boolean onItemLongClick (AdapterView parent, View view, int position, long id)
当按下视图中的项目并保持按下状态(长按)时执行的回调函数。 实现时如果需要访问与选中条目关联的数据,可以调用 getItemAtPosition(position)。
参数
parent 发生点击事件的 AbsListView。
view AbsListView 中被点击的视图。
position 视图在一览中的位置(索引)。
id 被点击条目的行 ID。
返回值
如果回调函数处理了长按事件,返回真;否则返回假。
muview.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Log.e("setOnItemLongClickListener", "setOnItemLongClickListener");
return true;
}
});
muview.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView arg0, View arg1, int arg2,
long arg3) {
Log.e("setOnItemClickListener", "setOnItemClickListener");
}
});
可以看到系统是优先相应clicklisener的,他是没有返回值的。
而对于onLongClickLisener是有一个返回值标识。对于一次长按操作,如果返回false,则2个lisener都会相应,如果返回true则时间被longClick链式拦截,后面的【clickLisener处于后面的位置】的注册的lisener将不再向上回调;
在处理长按时,注意的细节是把onItemLongClick返回设置为true,否则长按是会执行setOnItemClickListener
之前对长按操作处理有误,返回了false;
正确应该 回调系统 return true;
NOTE:如果回调函数处理了长按事件,返回真;否则返回假 |