Codenameone Codename One-以编程方式在搜索栏中开始编辑
当表单显示时,我需要以编程方式在搜索栏中开始编辑。因为我没有找到任何API,所以我在表单中编写了以下代码:Codenameone Codename One-以编程方式在搜索栏中开始编辑,codenameone,Codenameone,当表单显示时,我需要以编程方式在搜索栏中开始编辑。因为我没有找到任何API,所以我在表单中编写了以下代码: addShowListener(l -> { for (int i = 0; i <= getToolbar().getComponentCount(); i++) { if (getToolbar().getComponentAt(i) instanceof Button) { Button btn =
addShowListener(l -> {
for (int i = 0; i <= getToolbar().getComponentCount(); i++) {
if (getToolbar().getComponentAt(i) instanceof Button) {
Button btn = (Button) getToolbar().getComponentAt(i);
if (btn.getUIID().equals("TitleCommand")) {
btn.pressed();
btn.released();
}
if (btn.getUIID().equals("BackCommand")) {
btn.addActionListener(ev -> {
backForm.showBack();
});
}
}
}
});
addShowListener(l->{
对于(int i=0;i{
backForm.showBack();
});
}
}
}
});
此代码的问题:
- 它依赖于方法
的当前实现,该方法在工具栏中创建了一个带有UIIDForm.getToolbar().addSearchCommand
(右侧的搜索图标)的按钮和另一个带有UIIDTitleCommand
(左侧的箭头)的按钮BackButton
- 添加到“后退”按钮的“我的监听器”不起作用:它没有显示
,而是显示没有搜索栏的工具栏backForm
所以。。。我的问题是如何用更好的编码实现我所需要的。是否需要执行RFE以公开类似于
Toolbar.startSearchEditingAsync()的API
?如何更改backButton的默认actionListener?如果需要在显示之前启动它,则可能需要类似于Form.setEditOnShow()的更精细的操作
在我开始时,这在我的脑海中似乎有点简单,但一旦开始,我就必须完成,所以我在这里实现了这一点:
它应该可以工作,如果有问题请告诉我。做得很好,谢谢!我将对你关于“后退”按钮的一个(小)问题进行评论。