代号单硬件本机后退按钮转到上一页

时间:2018-07-17 14:16:39

标签: java codenameone

在一个具有代号的应用程序中,我们如何从本机(设备上的硬件后退按钮)建立后退命令,以返回到先前的形式? 大多数android都有一个本机的后退按钮,但是当我在应用程序中按它时,它不会以以前的形式出现,因此会最小化该应用程序。 我已经尝试通过.res文件中的常量,但没有找到相关的选项。 (带红色下划线的按​​钮,在此图像的左下方)

添加:使用新的GUI构建器创建所有表单。

the red lined

3 个答案:

答案 0 :(得分:2)

我也在努力使用back命令,这是它的工作方式(我认为):

假设您拥有FormA和FormB。从FormA启动FormB,然后在FormB中按“后退”按钮,FormA会显示回来。

要执行此操作:在FormA中,声明以下命令:

Command back = new Command("Back") {
    @Override
    public void actionPerformed(ActionEvent evt) {
        showBack();
    }
};

仍然在FormA中,按钮的actionEvent中或启动FormB的其他事件中:

public void onFormActionEvent(com.codename1.ui.events.ActionEvent ev) {
    Form formB = new FormB();
    formB.getToolbar().setBackCommand(back);
    formB.setBackCommand(back);
    formB.show();
}

它对我有用,这是我设法运行back命令的唯一方法。

答案 1 :(得分:1)

如果您使用类似的东西:

myForm.getToolbar().setBackCommand("", e -> showPreviousForm());

通过将箭头隐式放置在左上角并处理物理上的后退按钮,可以正常工作。

如果您只想在具有该按钮的设备上使用物理后退按钮,则可以使用:

myForm.setBackCommand(new Command("") {
    public void actionPerformed(ActionEvent ev) {
        showPreviousForm();
    }
});

注意,我指的是硬按钮,因为它在应用程序中的外观与底部的屏幕后退按钮相同。

答案 2 :(得分:1)

尝试

例如 这是您自己的按钮

 button.setOnClickListener(new View.OnClickListener() { 
@Override public void onClick(View view) {
 onBackPressed(); 
} });

此使用设备后退按钮

@Override
public void onBackPressed() {
    finish();
}

使用您自己的按钮

button.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {
             finish();
         }
     });