2012-05-07 14 views
2

我在Java ME中有兩個文本字段,我試圖創建第三個字段將計算用戶將輸入的兩個以前的文本字段的總數。我知道我會首先將前兩個文本字段轉換爲Int值。然後將它們設置爲變量以添加並顯示在第三個文本字段中。從J2ME的文本字段解析int或double

但隨着我在下面的代碼我得到的錯誤信息,是否有另一種方式做到這一點?

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); 
} 

回答

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) + ""); 
    } 
1

既然你需要在文本框整數所以不是在所有三個文本框TextField.ANY使用TextField.NUMERIC。這將限制用戶只輸入數字。然而,你可以添加約束第三文本框totali.setConstraints(TextField.UNEDITABLE);

而且讀documentation以熟悉J2ME。

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)