是否可以根据以下设计自定义Objectfieldlist?

         ----------------------------
ROW#1    ROW NAME
         row details
         ---------------------------
ROW#2    ROW NAME
         row details
         ---------------------------
ROW#3    ROW NAME
         row details
         ---------------------------


行名的字体将比行详细信息大

基本上,我在ObjectListField的行中需要2个文本行。**或者其他任何方法或建议,因为我可能做错了,**请帮我解决这个问题,这对Blackberry Development来说是个新功能。

最佳答案

ObjectListField并不是执行此操作的正确方法-实际上,当您只需要简单的字符串列表时,它实际上是ListField的快速版本。

您应该扩展ListField本身,并提供自己的ListFieldCallback实现,该实现根据数据模型呈现列表。使用ListField.setCallback设置您的回调。

ListFieldCallback.drawListRow为您提供Graphics上下文,因此您可以绘制任何内容,包括多行文本。另外,请确保在列表字段上调用ListField.setRowHeight,以使行足够高以容纳2行文本(默认高度为字体高度,因此只能容纳1行文本)。

示例代码类似于(这是不完整的,没有其他代码将无法编译):

ListField myListField = new ListField();
myListField.setRowHeight(getFont().getHeight() * 2)

myListField.setCallback(new ListFieldCallback() {
    public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width) {
       // draw the first line of text
       graphics.drawText(0, y, "ROW " + rowNumber);
       graphics.drawText(20, y, "ROW NAME");
       graphics.drawText(20, y + getFont().getHeight(), "row details");
    }

09-28 12:11