代号一 - 使用动作事件和新的 GUI 生成器从表单 A 导航到表单 B - 并从 B 导航回 A
Codename one - Navigate from Form A to Form B with action events and new GUI builder - and navigate back from B to A
新 GUI Builder 的最佳实践是什么,通过单击 "form A" 中的按钮,使用操作事件从 "form A" 简单地导航到另一个 "form B"?
如果我像这样在表单 A 中创建表单 B
public void oncreateAccountActionEvent(com.codename1.ui.events.ActionEvent ev) {
new FormB().show();
}
然后我显然无法在 new FormB().show()
之前从主 class(启动、停止、销毁方法)内部修改表单 B。在这种情况下 new FormA().show();
位于主要 class.
的启动方法中
我希望能够具体说明,例如返回表单 B 的后退按钮以导航回表单 A,但我想将其添加到 Main class.
的启动方法中
谢谢!
编辑:
我有 Main-class(有 start()、stop()、destroy() 方法),在这个 class 我做 new FormA().show()
.
但是在 FormA 的 class 中,我有 oncreateAccountActionEvent
方法(和按钮),它通过 new FormB().show()
.
显示 FormB
但是我希望能够指定 formB.setBackCommand()
(进入 main-class 内的 FormB 的工具栏)。
所以说我想在主 class 和 new FormA/B()
中指定两种形式 - 然后修改形式,如向工具栏添加按钮 - 然后告诉 FormA 应该在里面使用 FormB动作事件方法。
使用 showBack() 方法从 FormB 返回到 FormA,如下面的代码所示。您可以只保留对 previous/next 表单实例的引用。
FormA formA = new FormA();
FormB formB = new FormB();
public void oncreateAccountActionEvent(com.codename1.ui.events.ActionEvent ev) {
formB.show();
}
public void showFormA(){
formA.showBack();
}
通过简单地覆盖 Main-class 中的 oncreateAccountActionEvent
-方法,我找到了一个明显的解决方案,并且仍然能够在之前创建和修改 formB:
Form formB= new FormB();
// Modifying formB
formB.setBackCommand(backCommand);
...
//Create formA and show the modified formB on button click
FormA formA= new FormA() {
@Override
public void oncreateAccountActionEvent(ActionEvent ev) {
//Navigate to FormB
formB.show();
};
};
为了从 formB 导航回 formA,我找到了这个解决方案,通过实施 formB 的 class 的 show()
-方法来保持对先前表单的引用:
private Form previous;
...
public void show() {
previous = Display.getInstance().getCurrent();
super.show();
}
...
//go to the form before
public void goBack(){
previous.showBack();
}
也许这对其他人也有帮助。
新 GUI Builder 的最佳实践是什么,通过单击 "form A" 中的按钮,使用操作事件从 "form A" 简单地导航到另一个 "form B"?
如果我像这样在表单 A 中创建表单 B
public void oncreateAccountActionEvent(com.codename1.ui.events.ActionEvent ev) {
new FormB().show();
}
然后我显然无法在 new FormB().show()
之前从主 class(启动、停止、销毁方法)内部修改表单 B。在这种情况下 new FormA().show();
位于主要 class.
我希望能够具体说明,例如返回表单 B 的后退按钮以导航回表单 A,但我想将其添加到 Main class.
的启动方法中谢谢!
编辑:
我有 Main-class(有 start()、stop()、destroy() 方法),在这个 class 我做 new FormA().show()
.
但是在 FormA 的 class 中,我有 oncreateAccountActionEvent
方法(和按钮),它通过 new FormB().show()
.
但是我希望能够指定 formB.setBackCommand()
(进入 main-class 内的 FormB 的工具栏)。
所以说我想在主 class 和 new FormA/B()
中指定两种形式 - 然后修改形式,如向工具栏添加按钮 - 然后告诉 FormA 应该在里面使用 FormB动作事件方法。
使用 showBack() 方法从 FormB 返回到 FormA,如下面的代码所示。您可以只保留对 previous/next 表单实例的引用。
FormA formA = new FormA();
FormB formB = new FormB();
public void oncreateAccountActionEvent(com.codename1.ui.events.ActionEvent ev) {
formB.show();
}
public void showFormA(){
formA.showBack();
}
通过简单地覆盖 Main-class 中的 oncreateAccountActionEvent
-方法,我找到了一个明显的解决方案,并且仍然能够在之前创建和修改 formB:
Form formB= new FormB();
// Modifying formB
formB.setBackCommand(backCommand);
...
//Create formA and show the modified formB on button click
FormA formA= new FormA() {
@Override
public void oncreateAccountActionEvent(ActionEvent ev) {
//Navigate to FormB
formB.show();
};
};
为了从 formB 导航回 formA,我找到了这个解决方案,通过实施 formB 的 class 的 show()
-方法来保持对先前表单的引用:
private Form previous;
...
public void show() {
previous = Display.getInstance().getCurrent();
super.show();
}
...
//go to the form before
public void goBack(){
previous.showBack();
}
也许这对其他人也有帮助。