Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mobile 在J2ME中从文本字段解析int或double_Mobile_Java Me_Midp_Lcdui - Fatal编程技术网

Mobile 在J2ME中从文本字段解析int或double

Mobile 在J2ME中从文本字段解析int或double,mobile,java-me,midp,lcdui,Mobile,Java Me,Midp,Lcdui,我在JavaME中有两个文本字段,我正在尝试创建第三个字段,它将计算用户将输入的前两个文本字段的总数。我知道我应该首先将前两个文本字段转换为Int值。然后将它们设置为要添加并显示在第三个文本字段中的变量 但是我在下面使用的代码会收到错误消息,还有其他方法吗 public firstMIDlet() { d = Display.getDisplay(this); muaj1 = new TextField("0-11 muaj", "", 6, TextField.ANY);

我在JavaME中有两个文本字段,我正在尝试创建第三个字段,它将计算用户将输入的前两个文本字段的总数。我知道我应该首先将前两个文本字段转换为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);
}

因为文本字段中需要整数,所以不要使用
textField。任何
在所有三个文本字段中使用
textField.NUMERIC
。这将限制用户只输入数字。但是,您可以向第三个textField
totali.setConstraints(textField.UNEDITABLE)添加约束


此外,阅读以熟悉j2me。

因为文本字段中需要整数,所以不要使用
textField。任何
在所有三个文本字段中使用
textField.NUMERIC
。这将限制用户只输入数字。但是,您可以向第三个textField
totali.setConstraints(textField.UNEDITABLE)添加约束


此外,请阅读以熟悉j2me。

您应该发布您遇到的错误以及发生的位置。 所以可能

如果返回的值为“”(这是您的情况),则无法将其转换为整数并返回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();
    }
在哪里

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

    Integer.toString(m1Int + m2Int)

你应该公布你犯了什么错误以及在哪里。 所以可能

如果返回的值为“”(这是您的情况),则无法将其转换为整数并返回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();
    }
在哪里

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

    Integer.toString(m1Int + m2Int)
谢谢各位

通过使用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) + "");
   }
谢谢各位

通过使用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) + "");
   }