search - 工具栏搜索 SwipableContainer 代号一
问题描述
我正在尝试使用工具栏搜索功能来搜索多个 SwipeableContainers。每个容器顶部都有一个 MultiButton,左下角和右下角有多个按钮。本质上,我从数据库接收数据并循环通过添加 SwipeableContainer 的结果,并使用 sc.setName() 为每个设置一个名称(MultiButton 的 Line1)。然后我尝试使用以下代码进行搜索:
这是代码:
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 cannot be cast to com.codename1.ui.SwipeableContainer。如果我在错误对话框中按“确定”,则搜索会按预期过滤该 1 个字符的选项。对于下一个字符,我得到相同的异常和结果,依此类推。
我会很感激一些关于我哪里出错的指导。
解决方案
您在centercont
. 其中一个是 a SwipeableContainer
,另一个是 a Label
。
您可以通过在进行演员表之前检查来解决它,instanceof
但您可能需要检查您的代码/组件检查器以查看该标签是什么以及它是否应该在那里。
推荐阅读
- javascript - cloudinary url 的正则表达式组
- logstash-grok - Grok Pattern 跳过一个字符
- reactjs - Firebase Firestore 不会保存我的用户数据?
- php - PHP SQL UPDATE 如果存在或 INSERT 如果不存在?
- python - 如何让这个脚本正常工作?
- hortonworks-data-platform - SnapshotDiff 未显示正确的报告
- reactjs - Firestore where、orderBy 和 onSnapshot 不起作用
- c# - MVC所有DropdownListsFor都返回错误:“值不能为空,参数名称:项目”POST后,在GET时完美填充
- azure-devops - 通过 azure devops 将测试完成结果推送到黄瓜
- azure - WEBSITE_TIME_ZONE 已设置但未通过应用设置