我是android编程的初学者,我正在尝试用3个editText字段编写一个简单的计算器。 其中2个用作输入,第3个用作输出结果。 当我点击“+”按钮时,我希望它输出2个数字的总和。 但我得到一个奇怪的数字,例如2 + 3 = 2.131230724E9 我尝试通过网络解决,但找不到具体问题....谢谢......
final double tf1 = Double.parseDouble(String.valueOf(R.id.editText1));
final double tf2 = Double.parseDouble(String.valueOf(R.id.editText2));
Button btplus = (Button)findViewById(R.id.button1);
btplus.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
double tf3;
tf3 = tf1 + tf2;
EditText result = (EditText)findViewById(R.id.editText3);
result.setText(String.valueOf(tf3));
}
});
答案 0 :(得分:2)
问题在于您的代码:
final double tf1 = Double.parseDouble(String.valueOf(R.id.editText1));
final double tf2 = Double.parseDouble(String.valueOf(R.id.editText2));
您没有获取EditText的值,而是获取对象的引用。你需要为这样的事情改变这个
final double tf1 = Double.parseDouble(((EditText)findViewById(R.id.editText1)).getText().toString());
final double tf2 = Double.parseDouble(((EditText)findViewById(R.id.editText2)).getText().toString());
此外,您应该在按钮的OnClick方法中包含这些行,因此当您单击按钮时它将获取当前值。
答案 1 :(得分:2)
R.id.editText1
指的是R.java
中的int值。
您需要先在onCreate
初始化EditText。如果您不希望final修饰符将EditText声明为类成员
final EditText ed1 = (EditText) findViewById(R.id.editText1);
final EditText ed2 = (EditText) findViewById(R.id.editText1);
final EditText result = (EditText)findViewById(R.id.editText3);
然后
Button btplus = (Button)findViewById(R.id.button1);
btplus.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
double tf3;
double tf1 =Double.parseDouble(ed1.getText().toString());
double tf2 =Double.parseDouble(ed2.getText().toString());
tf3 = tf1 + tf2;
result.setText(String.valueOf(tf3));
}
});
答案 2 :(得分:0)
而不是:
result.setText(String.valueOf(tf3));
使用此:
result.setText("" + tf3);
答案 3 :(得分:0)
尝试以下方法:
EditText editText1 = (EditText) findViewById(R.id.editText1);
EditText editText2 = (EditText) findViewById(R.id.editText2);
final double tf1 = Double.parseDouble(editText1.getText().toString());
final double tf2 = Double.parseDouble(editText2.getTExt().toString());
R.id只是一个引用整数,这就是为什么在将两个id整数加在一起时得到奇数,而不是文本框中的实际值。
答案 4 :(得分:0)
final double tf1 = Double.parseDouble(edittext1.getText().toString());
final double tf2 = Double.parseDouble(edittext2.getText().toString());
Button btplus = (Button)findViewById(R.id.button1);
btplus.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
double tf3 = 0;
tf3 = tf1 + tf2;
EditText result = (EditText)findViewById(R.id.editText3);
result.setText(String.valueOf(tf3));
}
});