工具栏搜索 SwipableContainer 代号一
Toolbar Search SwipableContainer Codename One
我正在尝试使用工具栏搜索功能来搜索多个 SwipeableContainer。每个容器的顶部都有一个 MultiButton,左下角和右下角有一些按钮。本质上,我从数据库接收数据并循环遍历添加 SwipeableContainer 的结果,并使用 sc.setName() 为每个对象设置一个名称(MultiButton 的第 1 行)。然后我尝试使用以下代码进行搜索:
代码如下:
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。如果我在错误对话框后按 'OK',搜索会按预期过滤该 1 个字符的选项。对于下一个字符等,我得到了相同的异常和结果。
对于我哪里出错的地方,我将不胜感激。
您在 centercont
中有多个组件。其中一个是SwipeableContainer
,另一个是Label
。
您可以通过在执行转换前检查 instanceof
来解决它,但您可能需要检查您的 code/component 检查员以查看该标签是什么以及它是否应该在那里。
我正在尝试使用工具栏搜索功能来搜索多个 SwipeableContainer。每个容器的顶部都有一个 MultiButton,左下角和右下角有一些按钮。本质上,我从数据库接收数据并循环遍历添加 SwipeableContainer 的结果,并使用 sc.setName() 为每个对象设置一个名称(MultiButton 的第 1 行)。然后我尝试使用以下代码进行搜索:
代码如下:
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。如果我在错误对话框后按 'OK',搜索会按预期过滤该 1 个字符的选项。对于下一个字符等,我得到了相同的异常和结果。
对于我哪里出错的地方,我将不胜感激。
您在 centercont
中有多个组件。其中一个是SwipeableContainer
,另一个是Label
。
您可以通过在执行转换前检查 instanceof
来解决它,但您可能需要检查您的 code/component 检查员以查看该标签是什么以及它是否应该在那里。