是否可以根据以下设计自定义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");
}