我在寻找一个简单的解决方案是/否对话中使用Java我习本教.我想用它喜欢这个,但其他方式都好.

if (YesNoDialog.ask("Are you sure?") == true) {
  // yes was chosen
} else {
  // no was chosen
}
有帮助吗?

解决方案

你需要一个 警报:

一个警示一个屏幕显示数据的用户和等待一段时间之前进行下一个可显示.一个警告可以包含一个文本串和图像。使用警报,向用户告知关于错误和其他特殊条件。

2 命令 ("是"/"否"在你的情况):

如果有两个或更多的命令本上提高警觉,它是会自动变成一个模式警报,及时值总是永远的。警报仍然是在显示直到的命令是援引。

这些都是建立在类支助在实1.0和高。还有你的代码段将永远不会的工作。这样一个API将需要阻止调用螺纹等待用户选择和答复。这是完全相反的方向用户界面的互动模式的实,这是根据在回调和代表团。你需要提供自己的类,实现 CommandListener, 准备你的代码步执行。

这里是一个(未经测试的!) 例类基于警报:

public class MyPrompter implements CommandListener {

    private Alert yesNoAlert;

    private Command softKey1;
    private Command softKey2;

    private boolean status;

    public MyPrompter() {
        yesNoAlert = new Alert("Attention");
        yesNoAlert.setString("Are you sure?");
        softKey1 = new Command("No", Command.BACK, 1);
        softKey2 = new Command("Yes", Command.OK, 1);
        yesNoAlert.addCommand(softKey1);
        yesNoAlert.addCommand(softKey2);
        yesNoAlert.setCommandListener(this);
        status = false;
    }

    public Displayable getDisplayable() {
        return yesNoAlert;
    }

    public boolean getStatus() {
        return status;
    }

    public void commandAction(Command c, Displayable d) {
        status = c.getCommandType() == Command.OK;
        // maybe do other stuff here. remember this is asynchronous
    }

};

使用这(再次未经测试并在我的头顶):

MyPrompter prompt = new MyPrompter();
Display.getDisplay(YOUR_MIDLET_INSTANCE).setCurrent(prompt.getDisplayable());

这个代码将会使提示目前显示的形式在你的程序,但它 不会阻止你的纹 像是在例如发布。你需要继续运行,并等待commandAction调用。

其他提示

我没有派你在Java我,但我找到它的参考可选软件包的 先进的图形用户接口API, ,这是用于像Java SE API创建,这些对话的 JOptionPane类

int JOptionPane.showConfirmDialog(java。awt.分parentComponent、java.郎。目>消息,java。郎。String title,int optionType)

返回可能是 JOptionPane.YES_OPTION,JOptionPane.NO_OPTION,JOptionPane.CANCEL_OPTION...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top