当我点击我的列表视图项时,它会调用onitemclick监听器,但是当我单击项目时,它会同时调用initemclick和onitemlongclick监听器。如何解决长按时只调用onitemlongclick监听器?
list.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//my code
}
});
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
//my code
}
}
答案 0 :(得分:2)
请注意,onItemLongClick()具有布尔返回值。如果您不想调用onItemClick,请使用onItemLongClick()返回true。
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
//....
// Above are your code.
// Return true for this method as below.
return true;
}
}
答案 1 :(得分:0)
在这种情况下,最好使用onClickListener()来获取List的单个视图而不是列表。 以及视图的onItemLongClickListener()。
答案 2 :(得分:0)
尝试使用这样的返回...
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
}
});
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
return true;
}
}
答案 3 :(得分:0)
你只需要返回false告诉系统它不应该再发送事件。
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
//Do something
return false;
}