Как отобразить целочисленные значения в таблице BlackBerry - PullRequest
0 голосов
/ 22 февраля 2011

Мне нужно отобразить значения типа "Integer" в таблице.Теперь я решил просто проверить тип «Integer» в методе «getDataFields ()» объекта DataTemplate и установить этот DataTemplate как шаблон данных моего TableView.

На снимке экрана ниже показаноВы мой метод "getDataFields".После запуска этого кода на симуляторе я просто получаю NoClassDefFoundError.

У кого-нибудь из вас есть какие-нибудь идеи, как это сделать?

Настройка: BB Eclipse Plugin v1.3,SDK 6,0

enter image description here

1 Ответ

0 голосов
/ 23 февраля 2011

Вот и мы:)
(Примечание: я изменил тип на 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);

Итак, я заполняю Вектор "Курс" несколькими Векторами. Вектор в примере, "atx", содержит различные элементы, строки и двойники. Мне нужно передать их разными типами, потому что строки будут оформлены не так, как Doubles.

Использование приведенного выше кода дает мне NoClassDefFoundError, передавая значение в виде String, например

atx.addElement("2885.19");

отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...