我想在两个编辑文本之间建立等式并将输出放在Toast上
我试着用这种方式:
String data1 = one.getText().toString();
String data2 = two.getText().toString();
String RES = data1 + data2;
但这种方式输出结果为String而不是数字
查找以下代码:主要活动代码: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 :(得分: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();
答案 1 :(得分:0)
在评估之前,您需要按如下方式将String解析为Integer:
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
}
}
});
希望它有所帮助。
答案 2 :(得分: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();
}
答案 3 :(得分: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_LONG
或Toast.LENGTH_SHORT
这是一种习惯而不是数值;)