我正在尝试对android事件处理程序进行一些敏锐的实验......
假设..,我有一个包含5个项目的列表。然后我想让这些项目成为可点击的,同时按住该项目3秒钟(少于它不可点击的那个)。
可能吗?
我列表中的一些代码......
String[] projection = new String[] {Browser.BookmarkColumns._ID,
Browser.BookmarkColumns.TITLE,
Browser.BookmarkColumns.URL};
String[] displayFields = new String[] {Browser.BookmarkColumns.TITLE,
Browser.BookmarkColumns.URL};
int[] displayViews = new int[] { android.R.id.text1,
android.R.id.text2 };
Cursor cur = managedQuery(android.provider.Browser.BOOKMARKS_URI,
projection, null, null, null);
setListAdapter(new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2, cur,
displayFields, displayViews));
好的,就是这样!我希望它足够清楚......
谢谢!
答案 0 :(得分:0)
您可以实现onTouch并启动计时器ON_DOWN并检查它是否已过期ON_UP。如果计时器是>无论你想要什么事件,都会被激活3秒钟。
Android内置了longClicks/longPress,其功能与此类似,减去控制按下的确切持续时间,但非常容易实现。 longPress的好处是它可以在整个操作系统中使用,这意味着用户对它非常熟悉。
答案 1 :(得分:0)
我会通过TouchEventListener进行设置,使用MotionEvent ACTION_DOWN
来激活定时器3秒钟public boolean onTouch(View view, MotionEvent event) {
if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
而MOTION_UP可以取消相同的Timer。