LWUIT 中没有针对 Forms 的 dispose 方法。您只需调用另一个 Form 的 show() 方法来替换旧的。由于 LWUIT 是为使用少量内存而构建的,因此它会在将旧表单替换为新表单之前处理其对旧表单的引用。如果“新”表单只是使用“后退”按钮访问的旧表单,则可以使用 showBack()。此方法反转表单转换,使其看起来“重新进入视图”。这是一个例子。
public void showA(boolean back) {
Form a = new Form ();
a.setTitle("AAAA");
FlowLayout exampleLayout = new FlowLayout();
final Button button = new Button("1");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
showB(false);
}
});
a.addComponent(button);
a.setTransitionInAnimator(CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, false, 1000));
if (back) {
a.showBack();
} else {
a.show();
}
}
public void showB(boolean back) {
Form b = new Form ();
b.setTitle("BBBBB");
FlowLayout exampleLayout = new FlowLayout();
final Button button = new Button("1");
Command c = new Command("Back") {
public void actionPerformed(ActionEvent evt) {
showA(true);
}
};
b.setBackCommand(c);
b.addCommand(c);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
showA(false);
}
});
b.setTransitionInAnimator(CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, false, 1000));
b.addComponent(button);
if (back)
b.showBack();
else
b.show();
}
public void startApp() {
Display.init(this);
showA(false);
}