我只为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;
编译失败;有关详细信息,请参阅编译器错误输出。
答案 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;
}
});