2008-12-26 71 views
6

有人可以给我如何三行添加到ListField以便列表显示像这样一个简单的例子?黑莓 - 添加项目到ListField

项目1

项目2

项目3

我只是想以表示用户可以选择的项目之一,该方案将取决于所选择的项目做一些事情的清单。

我搜索了所有在互联网上,但它似乎是不可能找到如何做一个简单的例子(我发现大多数的例子是不完整的)和黑莓的文档是可怕的。

谢谢!

回答

11

你可能想看看使用ObjectListField。处理选择动作throught含有Screen对象一样,我已经这样做了以下使用菜单项,我真的不知道如何设置默认选择的倾听者,你可能需要检测键和拨轮事件。

你一些示例代码:(没有测试!)

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); 
0

您可以通过覆盖

protected boolean navigationClick(int status,int time) 

然后你只需要制定出做什么检测各列表项的点击以响应点击。我这样做的方式是使用匿名类,为每个列表项设置。

2

可以重写navigationClick方法是这样的:

ObjectListField list = new ObjectListField() 
{ 
    protected boolean navigationClick(int status, int time) 
    { 
     // Your implementation here. 
    } 
}; 
0
private ListField fList = new ListField(){ 
     protected boolean navigationClick(int status, int time) { 
      System.out.println("omt Click"); 
      return true; 
     }; 
    }; 
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