2

我在 Java ME 中有两个文本字段,我正在尝试创建第三个字段,它将计算用户输入的前两个文本字段的总数。我知道我会首先将前两个文本字段转换为 Int 值。然后将它们设置为变量以添加并显示在第三个文本字段中。

但是使用下面我正在使用的代码时,我会收到错误消息,还有另一种方法吗?

public firstMIDlet()
{
    d = Display.getDisplay(this);

    muaj1 = new TextField("0-11 muaj", "", 6, TextField.ANY);
    int m1Int = Integer.parseInt(TextField.getString());

    muaj2 = new TextField("12-23 muaj", "", 6, TextField.ANY);
    int m2Int = Integer.parseInt(TextField.getString());

    totali = new TextField("TOTALI", "", 7, TextField.ANY);
}
4

3 回答 3

3

您应该发布您遇到的错误和位置。所以大概...

如果返回的值是“”(这是您的情况),则它无法将其转换为整数并返回 NumberFormatException。

如果要将其解析为整数,则应使用 TextField.NUMERIC。

此外,您可能需要启动一个动态计算第三个字段值的线程。

并且每当您调用 TextField.getString() 时都会出错,因为它不是静态方法,并且它不知道应该从哪个 TextField 获取它。

所以,你需要做这样的事情:

    private Form f;
    public firstMIDlet() {
        d = Display.getDisplay(this);
        f = new Form("myform);
        muaj1 = new TextField("0-11 muaj","",6,TextField.NUMERIC);
        muaj2 = new TextField("12-23 muaj","",6,TextField.NUMERIC);
        totali = new TextField("TOTALI","",7,TextField.NUMERIC | TextField.UNEDITABLE);
        myform.append(muaj1);
        myform.append(muaj2);
        myform.append(totali);
        startUpdating();
    }

    public void startApp() {
        d.setCurrent(form);
    }

    public void startUpdating() {
        new Thread () {
            public void run() {
                try {
                    int m1Int = Integer.parseInt(muaj1.getString());
                    int m2Int = Integer.parseInt(muaj2.getString());
                    totali.setString((m1Int + m2Int) + "");
                }
                catch (NumberFormatExeption nfe) {}
            }
        }.start();
    }

在哪里

    "" + someInt

将转换为字符串。你也可以使用

    Integer.toString(m1Int + m2Int)
于 2012-05-07T09:59:21.393 回答
1

由于您需要在 textField 中TextField.ANY使用整数,因此不要TextField.NUMERIC在所有三个 textField 中使用。这将限制用户仅输入数字。但是,您可以向第三个 textField 添加约束totali.setConstraints(TextField.UNEDITABLE);

此外阅读文档以熟悉 j2me。

于 2012-05-07T09:47:03.103 回答
0

多谢你们,

通过使用 TextField.NUMERIC 并创建一个新的计算函数,我已经使计算工作

 public void calc() {
    int a1=0, a2=0, a3=0, a4=0, res=0;
    a1 = Integer.parseInt(muaj1.getString());
    a2 = Integer.parseInt(muaj2.getString());
    a3 = Integer.parseInt(muaj3.getString());
    a4 = Integer.parseInt(muaj4.getString());
    totali.setText((a1 + a2 + a3 + a4) + "");
   }
于 2012-05-10T08:48:40.470 回答