在 Android ListView 的 onItemClick 和 onItemLongClick 事件之间切换


我想

问一下如何在列表视图下切换和选择一个事件。我下面的代码正在工作。但是当 OnItemLongClick 触发时,OnItemClick 也会触发。如何切换仅检测到一个事件的事件:

lstResult.setOnItemClickListener(new OnItemClickListener()
        {
            @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long arg3) {
                // TODO Auto-generated method stub
                //showToast(arg0.getItemIdAtPosition(position) +  "");
                 String str = searchWhere(lstResult.getItemAtPosition(position) + "");
                 String word = lstResult.getItemAtPosition(position).toString();
                 showDialog(word,str);
            }
        });
        lstResult.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
                // TODO Auto-generated method stub
                showToast(lstResult.getItemAtPosition(position) + "");
                return false;
            }
        });

在 OnItemLongClick 末尾返回布尔值 true。

根据OnItemLongClickListener的文档:

返回 如果回调消耗了长按,则为 true,否则为 false。

如果触发长按,您应该返回true

当你在OnItemLongClickListener上返回false时,这不会是触发的,所以你可以定义一个布尔变量来在你的监听器之间切换

最新更新