setOnItemClickListener在Android中保持3秒时调用

时间:2011-04-09 05:54:47

标签: android listview timer

我正在尝试对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));
好的,就是这样!我希望它足够清楚......  谢谢!

2 个答案:

答案 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。