-1

我希望有兩個編輯文本之間的方程並把吐司 輸出我試圖用這樣的公式: String data1 = one.getText().toString(); String data2 = two.getText().toString(); String RES = data1 + data2; 但這種方式輸出的結果作爲字符串而不是數字 查找代碼如下:主活動代碼:MainActivity.java我想讓之間有兩個編輯文本

package com.mkadaim.android; 

import android.R.integer; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.text.Editable; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    final EditText one = (EditText)findViewById(R.id.First); 
    final EditText two = (EditText)findViewById(R.id.Second); 

    Button res = (Button)findViewById(R.id.Result); 
    res.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     int x = one.getText(); 
     int y = two.getText(); 
     int z = x + y; 
     Toast.makeText(getBaseContext(), z, 4000).show(); 

     } 
    }); 
} 


} 
+0

字符串RES = 「」 +(Double.ParseDouble(數據1)+ Double.ParseDouble(DATA2 ));這樣做 – Hasnain 2014-09-27 12:27:09

回答

0

您需要解析字符串爲整數的評估之前如下:

res.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     String xStr = one.getText().toString().trim(); 
     String yStr = two.getText().toString().trim(); 

     if(!(xStr.equals("") && yStr.equals(""))){ 
      int x = Integer.parseInt(xStr); //Try catch for handling parse exceptions for both String 
      int y = Integer.parseInt(yStr); 
      int z = x + y; 
      Toast.makeText(context, String.valueOf(z), 4000).show(); 
     } 
     else{ 
      //enter both numbers 
     } 
    } 
}); 

希望它能幫助。

+1

它幫助我,我用這種方式:) :)謝謝@MysticMagic – MKADAIM 2014-09-27 12:38:10

+0

更好的方法是檢查'xStr'和'yStr'是否不等於零,例如。 'if(null!= xStr){//此處代碼}',而不是空白值。 – ChuongPham 2014-09-27 12:38:27

+0

你能解釋我這段代碼嗎?if(!(xStr.equals(「」)&& yStr.equals(「」)))'你是什麼意思「嘗試catch處理兩個字符串的解析異常」 – MKADAIM 2014-09-27 12:54:35

0

one.getText()返回EditText的id。改用它。

@Override 
public void onClick(View v) { 
    int x = Integer.parseInt(one.getText().toString()); 
    int y = Integer.parseInt(two.getText().toString()); 
    int z = x + y; 
    Toast.makeText(getBaseContext(), z, 4000).show(); 
0

你不能添加兩個字符串。字符串的+運算符表示串聯的含義,結果是一個字符串。在展示結果之前,你想要的可能是將字符串轉換爲數字並對其進行求和。

try { 
    int x = Integer.parseInt(one.getText().toString().trim()); 
    int y = Integer.parseInt(two.getText().toString().trim()); 
    int z = x + y; 
    Toast.makeText(context, ""+z, 4000).show(); 
    } 
    catch(NumberFormatException nfe) 
    { 
    Toast.makeText(context, "Error!!!", 4000).show(); 
    } 
+0

它幫助了我:)謝謝黑色 – MKADAIM 2014-09-27 12:37:31

0
int x = Integer.parseInt(one.getText().toString()); 
    int y = Integer.parseInt(two.getText().toString()); 
    int z = x + y; 
    Toast.makeText(getBaseContext(), z, 4000).show(); 

爲什麼不使用Toast.LENGTH_LONGToast.LENGTH_SHORT這是一個去實踐,而不是數字值;)

相關問題