Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Listview 如何自定义ObjectListField?_Listview_Blackberry_Blackberry Eclipse Plugin - Fatal编程技术网

Listview 如何自定义ObjectListField?

Listview 如何自定义ObjectListField?,listview,blackberry,blackberry-eclipse-plugin,Listview,Blackberry,Blackberry Eclipse Plugin,是否可以根据以下设计自定义Objectfieldlist ---------------------------- ROW#1 ROW NAME row details --------------------------- ROW#2 ROW NAME row details --------------------------- ROW#3 ROW NAME ro

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

         ----------------------------
ROW#1    ROW NAME
         row details
         ---------------------------
ROW#2    ROW NAME
         row details
         ---------------------------  
ROW#3    ROW NAME
         row details
         ---------------------------
行名称的字体将大于行详细信息


基本上,我需要在ObjectListField.**或任何其他方法或建议的行中包含2个文本行,因为我可能错了,**请告诉我它的紧迫性,我是黑莓开发的新手。

ObjectListField
并不是这样做的正确方法-它实际上是作为
ListField
的快速版本设计的,适用于那些只需要简单字符串列表的时候

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

ListFieldCallback.drawListRow
为您提供了一个
图形
上下文,因此您可以绘制任意内容,包括多行文本。还要确保在列表字段上调用
ListField.setRowHeight
,使行足够高,可以容纳两行文本(默认高度是字体高度,因此只能容纳一行文本)

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

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"); 
    }