如何在BlackBerry Table中显示整数值

时间:2011-02-22 17:50:42

标签: java user-interface blackberry components

我需要在表格中显示“整数”类型的值。 现在,我想做的是简单地检查“getDataFields()”中的“Integer”类型 DataTemplate的方法,并将此DataTemplate设置为我的TableView的数据窗口。

下面的屏幕截图显示了我的“getDataFields”方法。在模拟器上运行此代码后,我得到一个NoClassDefFoundError。

你们中的任何人都有任何想法如何做到这一点?

设置:BB Eclipse插件v1.3,SDK 6.0

enter image description here

1 个答案:

答案 0 :(得分:0)

我们走了:) (注意:我将类型更改为Double而不是Integer,但它的工作方式相同)

public void setStyle() {
    DataTemplate dataTemplate = new DataTemplate(tableView, NUM_ROWS,
            NUM_COLUMNS) {
        public Field[] getDataFields(int modelRowIndex) {
            Object[] data = (Object[]) _tableModel.getRow(modelRowIndex);
            Field[] fields = new Field[data.length];
            for (int i = 0; i < data.length; i++) {
                if (data[i] instanceof Bitmap) {
                    fields[i] = new BitmapField((Bitmap) data[i]);
                } else if (data[i] instanceof String) {
                    MyTextField cell;
                    if(i==0){
                        cell = new MyTextField((String) data[i], RichTextField.NON_FOCUSABLE);
                    } else {
                        cell = new MyTextField((String) data[i], RichTextField.NON_FOCUSABLE | RichTextField.TEXT_ALIGN_RIGHT);
                    }
                    if(rowCount%2==0){
                        Background bg = BackgroundFactory.createSolidBackground(DesignColors.LIGHTBLUE);
                        cell.setBackground(bg);
                    }
                    fields[i] = cell;
                } else if (data[i] instanceof Double){
                    MyTextField cell = new MyTextField("Double", RichTextField.FOCUSABLE);
                    if(rowCount%2==0){
                        Background bg = BackgroundFactory.createSolidBackground(DesignColors.LIGHTBLUE);
                        cell.setBackground(bg);
                    }
                    fields[i] = cell;
                } else {
                    fields[i] = (Field) data[i];
                }
            }
            rowCount++;
            return fields;
        }
    };
    tableView.setDataTemplate(dataTemplate);
}

我实际想做的事情如下所示:

Vector atx = new Vector();
atx.addElement("ATX");
atx.addElement(2885.19);
atx.addElement("-0,14");
kurse.addElement(atx);

所以我用几个向量填充“kurse”向量。示例中的Vector“atx”包含不同的元素,字符串和双打。我需要用不同的类型传递它们,因为字符串的样式与双打不同。

使用上面的代码给我NoClassDefFoundError,将值作为String传递,比如

atx.addElement("2885.19");

完美无缺。