显示表单时,我需要以编程方式开始在搜索栏中进行编辑。因为我没有为此找到任何API,所以我在Form中编写了以下代码:
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();
});
}
}
}
});
此代码的问题:
Form.getToolbar().addSearchCommand
的当前实现,该方法在工具栏中创建了一个UIID为TitleCommand
的按钮(右侧的搜索图标)和另一个UIID为BackButton
的按钮(左侧的箭头)。backForm
,而是显示没有搜索栏的工具栏。所以...我的问题是如何通过更好的编码来实现所需的东西。是否有必要进行RFE公开类似Toolbar.startSearchEditingAsync()
的API?以及如何更改backButton的默认actionListener?
答案 0 :(得分:1)
如果需要在显示之前对其进行初始化,则可能需要与Form.setEditOnShow()
类似的详细说明。
当我启动它时,这在我脑海中似乎更简单一些,但是一旦开始,我必须完成操作,因此我在这里实现了此操作:https://github.com/codenameone/CodenameOne/commit/86fea99196dd5a453988ede8217e0809e529469a
它应该工作,如果有问题,请告诉我。