如何检测对 ListField 组件的长按?
您是否覆盖它的navigationClick(int status, int time)并摸索它的时间参数(如何?)或者是否有一些内置方法来检测长点击?
更重要的是 - 一旦你检测到这样的点击,你如何显示菜单(屏幕中间的那个)?
背景是在短按时我想让用户编辑选定的项目。在长按时,我想在屏幕中间显示一个菜单以提供辅助任务:删除项目、更改项目显示顺序等。
下面是我当前的测试代码 - src\mypackage\MyList.java:
package mypackage;
import java.util.*;
import net.rim.device.api.collection.*;
import net.rim.device.api.collection.util.*;
import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.decor.*;
import net.rim.device.api.util.*;
public class MyList extends UiApplication {
public static void main(String args[]) {
MyList app = new MyList();
app.enterEventDispatcher();
}
public MyList() {
pushScreen(new MyScreen());
}
}
class MyScreen extends MainScreen {
ObjectListField myList = new ObjectListField() {
protected boolean navigationClick(int status, int time) {
System.err.println("XXX status=" + status + ", index=" + getSelectedIndex());
return true;
}
};
public MyScreen() {
setTitle("How to detect long click?");
myList.set(new String[] { "Item 1", "Item 2", "Item 3", "Item 4", });
add(myList);
}
}
谢谢亚历克斯