如何自定义ObjectListField?

Ash*_*wal 3 listview blackberry blackberry-eclipse-plugin

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

         ----------------------------
ROW#1    ROW NAME
         row details
         ---------------------------
ROW#2    ROW NAME
         row details
         ---------------------------  
ROW#3    ROW NAME
         row details
         ---------------------------
Run Code Online (Sandbox Code Playgroud)

行名称将以比行详细信息更大的字体显示

基本上我在ObjectListField的一行中需要2个文本行.**或任何其他方法或建议,因为我可能是错的,**请指导我紧急,并且是一些新的Blackberry开发.

Ant*_*izk 5

ObjectListField这不是真正正确的方法 - ListField当你需要一个简单的字符串列表时,它真的被设计为快速版本.

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

ListFieldCallback.drawListRow为您提供Graphics上下文,以便您可以绘制任何内容,包括多行文本.另外,请确保调用ListField.setRowHeightlistfield以使行足够高以容纳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"); 
    }
Run Code Online (Sandbox Code Playgroud)