final EditText number1 = (EditText) findViewById(R.id.editText1);
final EditText number2 = (EditText) findViewById(R.id.editText2);
final TextView result =(TextView) findViewById(R.id.textView3);
Button calculate = (Button) findViewById(new View.OnClickListener() {
我做错了什么?
public void onClick(View v) {
number1 和 number to cast double 但我收到“无法在基本类型 double 上调用 getText()”错误
double number1 = Double.parseDouble(number1.getText().toString());//error
double number2 = Double.parseDouble(number2.getText().toString());error
result.setText(String.valueOf(number1*number2));
最佳答案
改变这个
final EditText number1 = (EditText) findViewById(R.id.editText1);
final EditText number2 = (EditText) findViewById(R.id.editText2);
到
final EditText num1 = (EditText) findViewById(R.id.editText1);
final EditText num2 = (EditText) findViewById(R.id.editText2);
并使用
double number1 = Double.parseDouble(num1.getText().toString());
double number2 = Double.parseDouble(num2.getText().toString());
您有 EditText numberr1
和 double number1
使用 MainActivity.this.varaiblename
来引用在 onClick
之外声明和初始化的变量。
你可能想检查一下
What is variable shadowing used for in a Java class?
找到更好的解释@
question about variable scope and shadowing in java
也试一试
try
{
final EditText num1 = (EditText) findViewById(R.id.editText1);
final EditText num2 = (EditText) findViewById(R.id.editText2);
}catch(NumberFormatException e){
e.printStacktrace();
}
如果字符串不包含可解析的 double ,则抛出 NumberFormatException
。
关于android - 我做错了什么?错误是 Cannot invoke getText() on the primitive type double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22032564/