3

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

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

行名称将使用比行详细信息更大的字体

基本上,我需要 ObjectListField 行中的 2 个文本行。**或任何其他方法或建议,因为我可能错了,**请指导我它的紧迫性,并且是 Blackberry Development 的一些新东西。

4

1 回答 1

5

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"); 
    }
于 2010-08-29T17:26:30.143 回答