Я пытаюсь использовать функцию поиска на панели инструментов для поиска по ряду 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 символа. Я получаю то же исключение и результат для следующего персонажа и т. Д.
Я был бы признателен за некоторые рекомендации о том, где я ошибся.