Использование listrenderer и флажки в lwuit - PullRequest
1 голос
/ 21 марта 2011

Я создал следующий пользовательский рендерер списков для lwuit. Рендерер расширяет флажок, но по какой-то причине функции выбора и отмены (проверить / снять флажок) не работают. Если i setselected(), то все элементы выбраны и не могут быть отменены. Вот пример кода;

class TaskListRenderer extends CheckBox implements ListCellRenderer {

        public TaskListRenderer() {
            super();
        }

        public Component getListCellRendererComponent(List list, Object o, int i, boolean bln) {

            Tasks task = (Tasks) o;
            try {
                img = Image.createImage("/three.png");
            } catch (IOException ex) {
                ex.printStackTrace();
            }
//            
            setIcon(img);
            setText(task.getPhoneID() + " " + task.getDate());

            Style style = new Style();//(0xff0000, 0x00ff00, null, byte(128));
            style.setBgColor(0xff0000);
            style.setFgColor(0x00ff00);
            setSelectedStyle(style);
            return this;
        }

        public Component getListFocusComponent(List list) {
            return this;
//            throw new UnsupportedOperationException("Not supported yet.");
        }
    }

1 Ответ

3 голосов
/ 24 марта 2011

Привет. Строка кода, которую вам не хватает:

Tasks task = (Tasks) o;
setSelected(task.isSelect());

См. рабочую версию надеюсь, это поможет.

На заметку, я настоятельно рекомендую вам переместитьприведенный ниже код с внешней стороны getListCellRendererComponent, потому что он вызывается много раз при отображении списка и замедляет производительность вашего приложения.

img = Image.createImage("/three.png");
...