BlackBerry - 将项添加到ListField

时间:2008-12-26 16:33:00

标签: user-interface blackberry listfield

有人可以给我一个关于如何向ListField添加三行的简单示例,以便列表显示如下内容吗?

第1项

第2项

第3项

我只想显示一个列表,用户可以在其中选择其中一个项目,程序会根据所选项目执行某些操作。

我在互联网上搜索,但似乎无法找到一个关于如何做到这一点的简单示例(我发现的大部分示例都不完整),黑莓文档很糟糕。

谢谢!

5 个答案:

答案 0 :(得分:11)

您可能希望查看使用ObjectListField。处理select动作是通过包含Screen对象完成的,我在下面使用MenuItem完成了这个,我不确定如何设置默认选择监听器,你可能必须检测键和拨轮事件。

您的一些示例代码:(未经过测试!)

MainScreen screen = new MainScreen();
screen.setTitle("my test");

final ObjectListField list = new ObjectLIstField();
String[] items = new String[] { "Item 1", "Item 2", "Item 3" };
list.set(items);

screen.addMenuItem(new MenuItem("Select", 100, 1) {
    public void run() {
        int selectedIndex = list.getSelectedIndex();
        String item = (String)list.get(selectedIndex);
        // Do someting with item
    });
screen.add(list);

答案 1 :(得分:2)

您可以像这样覆盖navigationClick方法:

ObjectListField list = new ObjectListField()
{
    protected boolean navigationClick(int status, int time)
    {
        // Your implementation here.
    }
};

答案 2 :(得分:1)

final class SimpleListScreen extends MainScreen
{
    public SimpleListScreen()
    {
        super(Manager.NO_VERTICAL_SCROLL);

        setTitle("Simple List Demo");

        add(new LabelField("My list", LabelField.FIELD_HCENTER));
        add(new SeparatorField());

        Manager mainManager = getMainManager();

        SimpleList listField = new SimpleList(mainManager);

        listField.add("Item 1");
        listField.add("Item 2");
        listField.add("Item 3");
        }
    }

    //add listener so that when an item is chosen,it will do something

答案 3 :(得分:0)

您可以通过覆盖

来检测每个列表项的点击
protected boolean navigationClick(int status,int time)

然后你只需要找出响应点击的方法。我这样做的方法是使用一个匿名类,为每个列表项设置。

答案 4 :(得分:0)

private ListField fList = new ListField(){
        protected boolean navigationClick(int status, int time) {
            System.out.println("omt Click");
            return true;
        };
    };