我有一个带有setOnItemClickListener
和setOnItemLongClickListener
的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
}
});
长按后,两者都将被执行。这是我的代码中的错误还是问题?
答案 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触发此事件的原因。