Поиск панели инструментов SwipableContainer Codename One - PullRequest
1 голос
/ 11 марта 2020

Я пытаюсь использовать функцию поиска на панели инструментов для поиска по ряду SwipeableContainer. Каждый контейнер имеет MultiButton вверху и несколько кнопок внизу слева и внизу справа. По сути, я получаю данные из базы данных и l oop через результат добавления SwipeableContainer и устанавливаю каждый из них с именем (Line1 MultiButton), используя s c .setName (). Затем я пытаюсь выполнить поиск, используя приведенный ниже код:

Вот код:

hi.getToolbar().addSearchCommand(e -> {
        String text = (String)e.getSource();
        if(text == null || text.length() == 0) {
            // clear search
            for(Component cmp : centercont) {
                cmp.setHidden(false);
                cmp.setVisible(true);
            }
            centercont.animateLayout(150);
        } else {
            text = text.toLowerCase();
            for(Component cmp : centercont) {                
                SwipeableContainer sc = (SwipeableContainer)cmp;
                String scName = sc.getName();
                boolean show = text.length() == 0 || scName.toLowerCase().contains(text);
                sc.setHidden(!show);
                sc.setVisible(show);
            }
            centercont.animateLayout(150);
        }
        }, 4);

После ввода первого символа в поиск я получаю следующее исключение: java .lang. ClassCastException: com.codename1.ui.Label не может быть приведен к com.codename1.ui.SwipeableContainer. Если я нажимаю «ОК» за диалоговым окном ошибки, поиск фильтрует параметры, как и ожидалось, для этого 1 символа. Я получаю то же исключение и результат для следующего персонажа и т. Д.

Я был бы признателен за некоторые рекомендации о том, где я ошибся.

1 Ответ

1 голос
/ 12 марта 2020

У вас есть более одного компонента в centercont. Один из них - SwipeableContainer, а другой - Label.

. Вы можете обойти его, проверив instanceof перед выполнением приведения, но вы можете проверить свой инспектор кода / компонентов, чтобы увидеть что это за ярлык и должен ли он там быть.

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