ListView Android

时间:2016-12-20 06:17:59

标签: android listview listener

我只为listview

创建长按一下监听器
chatListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public void onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

            View getElement1 = ((ViewGroup)view).getChildAt(0);
            int ChildCount = ((ViewGroup)getElement1).getChildCount();
            System.out.println(ChildCount);
        }
    });

我收到了一些错误

  

错误:(166,86)错误:不是抽象的   并且不会覆盖抽象方法   onItemLongClick(AdapterView,View,int,long)in   OnItemLongClickListener错误:(168,25)错误:   onItemLongClick(AdapterView,View,int,long)中无法实现   onItemLongClick(AdapterView,View,int,long)in   OnItemLongClickListener返回类型void与之不兼容   布尔错误:(167,13)错误:方法不会覆盖或实现a   来自超类型的方法错误:(166,45)错误:不兼容的类型:    无法转换为   OnLongClickListener错误:任务执行失败   &#39;:应用程序:compileDebugJavaWithJavac&#39;

     
    

编译失败;有关详细信息,请参阅编译器错误输出。

  

4 个答案:

答案 0 :(得分:5)

//You can Use this method
 listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
          @Override
          public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
              int pos, long id) {
            // TODO Auto-generated method stub

            Log.v("long clicked","pos: " + pos);

            return true;
          }
        });

答案 1 :(得分:2)

你必须消耗事件。写在onItemLongClick方法的底部

return true;

答案 2 :(得分:1)

根据文档https://developer.android.com/reference/android/widget/AdapterView.OnItemLongClickListener.html,函数应该返回一个布尔值。请检查。

答案 3 :(得分:1)

如果您使用自定义XML,则列表中每个项目的XML也必须具有android:longClickable="true"(或者您可以使用便捷方法chatListView.setLongClickable(true);)

还在onItemLongClick函数中添加一个布尔返回语句,即

  

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

chatListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public void onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

            View getElement1 = ((ViewGroup)view).getChildAt(0);
            int ChildCount = ((ViewGroup)getElement1).getChildCount();
            System.out.println(ChildCount);
            return true;
        }
    });