A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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:如果回调函数处理了长按事件,返回真;否则返回假

评分

参与人数 1黑马币 +6 收起 理由
LiuWei2015 + 6 这个分享很不错666

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马