onTouch在LongTouch后立即注册
问题描述:
我有一个ListView,当我按住(长按)某个项目时,该项目将从列表中删除。onTouch在LongTouch后立即注册
它正在注册一个接触之后,而长时间的接触仍在发生。
这里是我的代码 -
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getApplicationContext(), MapsActivity.class);
intent.putExtra("placeNumber", i);
intent.putExtra("Type", "Fav");
startActivity(intent);
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Log.i("Removing", "" + favouriteLocations.get(position));
favouriteLocations.remove(position);
Favourites.arrayAdapter.notifyDataSetChanged();
return false;
}
});
让长按一个“虚拟”触摸在其中长触摸了(一个新的项目已经在列表中向上移动)的项目出现的进去后和活动加载,就好像它已经被触摸一样。
它工作得很好,我确信我没有更改代码。有任何想法吗?
谢谢。
答
你从long click listner
需要return true
,你必须在XML有这个太android:longClickable="true"
但列表视图是可长按默认所以没有必要在所有更新XML。
+0
太棒了。谢谢 :-) – AndyCr15
您将OnTouchListener设置为整个ListView,而不是每个项目,这是您真正想要的吗?也许会更容易通知OnItemLongClickListener内部的数据更改并删除OnTouchListener。干杯! – miibpa
我对所有这些都是陌生的,所以如果我弄错了,请原谅我,但我只是在那里放置onTouchListener来检测触摸何时停止。我现在意识到任何触摸现在会延迟一秒,对吗?我现在编辑它。 – AndyCr15