blackberry - 如何在 BlackBerry 中附加并获取特定列表项 ID?

标签 blackberry blackberry-simulator blackberry-eclipse-plugin blackberry-jde

我正在尝试使用 FieldManagers(水平和垂直)创建列表。在此列表中,我有多个可点击的项目(例如按钮),因此我没有使用 ListFieldObjectListField

我已成功创建 UI,但无法附加来自服务器的特定项目 ID。另外,在单击任何列表行中的特定按钮时,我想获取项目 ID 并希望针对该 ID 执行操作。

那么,请让我知道如何在使用 FieldManager 时将 ID 附加到特定行,然后如何在单击按钮时针对该 ID 生成事件?

最佳答案

当您创建一行时,您可能会为每一行创建一个Manager(子类)。

至少,您似乎在每一行上创建一个 ButtonField

您可以做的是在创建cookie时将cookie附加到每一行或每个按钮。 cookie 只是附加到对象的一条额外信息。然后,当单击该行或按钮时,您会向该行/按钮询问 cookie,并使用它来识别行 ID。

每台黑莓手机Field可以附加一个 cookie。由于 cookie 的类型为 Object,因此您可以将其设置为您想要的任何内容。

例如,为行创建按钮时:

for (int i = 0; i < numRows; i++) {
    BitmapButtonField button = new BitmapButtonField(onImage, offImage, ButtonField.CONSUME_CLICK);
    // use the row index as the cookie
    button.setCookie(new Integer(i));
    button.setChangeListener(this);
    Manager row = new MyRowManager();
    row.add(button);
    add(row);
}

然后当单击按钮时:

void fieldChanged(Field field, int context) {
    Object cookie = field.getCookie();
    if (cookie instanceof Integer) {
        Integer rowId = (Integer)cookie;
        System.out.println("Row Id = " + rowId);
    }
}

注意:我正在使用 BlackBerry Advanced UI BitmapButtonField为此,cookie 技术适用于任何 FieldManager 类。 See another example here .

关于blackberry - 如何在 BlackBerry 中附加并获取特定列表项 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16458147/

相关文章:

html - 绝对位置在黑莓移动应用程序中不起作用

blackberry - 我可以在黑莓手机上显示系统日志吗?

blackberry-simulator - 在 virtualbox 中运行 BlackBerry 10 模拟器 (alpha)

blackberry - 是否有适用于 Blackberry 浏览器的现有在线模拟器?

黑莓模拟器在 Windows VM guest 下挂起

xml-parsing - 如何在 Blackberry 中解析 xml 文档?

blackberry - 无需签名 key 即可将 Java 代码部署到 BlackBerry 设备

Blackberry Apps - 将代码签名的 jar 导入应用程序项目

deployment - 如何从 Eclipse 打包和部署黑莓应用程序到设备

BlackBerry - 解压 Zip 文件