我无法从选取器中获取值,因此我可以在下一堂课中使用它。我试图在 GitHub 上运行 Picker 类来观察不同的选择器,但是来自 spinner 系列的太多代码不起作用。回到我原来的代码。我需要知道示例中缺少什么,以在选择器中按下“完成”按钮后结束对话框。这是代码:
if (nplans == null) {
Dialog dlg = new Dialog("");
Picker datePicker = new Picker();
datePicker.setUseLightweightPopup(true);
String wdate = new Date().toString();
datePicker.setDate(new Date());
dlg.setLayout(new BorderLayout());
dlg.addComponent(CENTER, datePicker);
selectedDate = datePicker.getValue().toString();//Text();
dlg.showPacked(CENTER, true);
dlg.setDisposeWhenPointerOutOfBounds(true);
Dialog.show("Selected Date", selectedDate, "OK", null);
} else {
new Plan();
}
} catch(IOException err) {
Log.e(err);
}
你在这里依赖的一些 EDT 体操可能会以非常奇怪的方式失败。 第一个对话框停止 EDT 并保留输入,这些输入可能会释放对话框,也可能不会。一般来说,我建议不要将输入放在对话框中,尤其是选择器中,因为选择器在每个操作系统上的行为可能有所不同。
我建议将选择器直接放入表单中,并使用操作侦听器异步跟踪选择器值的更改。这是实现这一目标的正确跨平台方法。