Android 4.4 setOnItemLongClickListener错误?

时间:2013-12-21 15:43:52

标签: android android-4.4-kitkat onlongclicklistener

我有一个带有setOnItemClickListenersetOnItemLongClickListener的ListView。 1年以来没问题。但是使用Android 4.4,我将使用LongClick两个方法执行。

例如:

lv.setOnItemClickListener(new OnItemClickListener()
        {
        public void onItemClick(AdapterView<?> arg0,View arg1,int arg2, long arg3){
            ListView lv = (ListView) findViewById(R.id.listView1);      
            final String Name = lv.getAdapter().getItem(arg2).toString();               

            // Make sth on click
        }});


        lv.setOnItemLongClickListener(new OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    final int arg2, long arg3) {
            // Make sth on longclick
            }
        });  

长按后,两者都将被执行。这是我的代码中的错误还是问题?

1 个答案:

答案 0 :(得分:2)

您的代码没有问题,只是您没有在onItemLongClick布尔值上返回值。将其更改为:

    lv.setOnItemLongClickListener(new OnItemLongClickListener() {
                @Override
                public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                        final int arg2, long arg3) {
                // Make sth on longclick

                return true;
                }
            }); 

这会阻止长时间点击进行进一步的操作,因为请注意,长按仍然是一次点击,这就是onclicklistener触发此事件的原因。