0

我正在尝试制作一个简单的乘数计算器。我已经完成了大部分工作,但我不断收到相同的错误:对于参数类型 Double、EditText,运算符 * 未定义。

我搜索了其他人提出的问题,但唯一简单的问题处理的不是双打。有谁知道如何修理它?

package com.deitel.multiplicationtables;

import android.os.Bundle;
import android.app.Activity;
import android.widget.Button;
import android.widget.TextView;
import android.widget.EditText;
import android.view.View;

//Implements the listener for an onclick event (implements View.onClickListener)
public abstract class Main extends Activity implements View.OnClickListener{
   // creates a button 
    private Button one, two, three, four, five, six, seven, eight, nine;

    // Called when the activity is first created.
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

      //assigns the resource id of 1 - 9 to each button.
        one = (Button) findViewById(R.id.button1);
        two = (Button) findViewById(R.id.button2);
        three = (Button) findViewById(R.id.button3);
        four = (Button) findViewById(R.id.button4);
        five = (Button) findViewById(R.id.button5);
        six = (Button) findViewById(R.id.button6);
        seven = (Button) findViewById(R.id.button7);
        eight = (Button) findViewById(R.id.button8);
        nine = (Button) findViewById(R.id.button9);

        //Adds the buttons to the onclicklistener
        one.setOnClickListener(this);
        two.setOnClickListener(this);
        three.setOnClickListener(this);
        four.setOnClickListener(this);
        five.setOnClickListener(this);
        six.setOnClickListener(this);
        seven.setOnClickListener(this);
        eight.setOnClickListener(this);
        nine.setOnClickListener(this);

    }

  //creates a method (or action) for when the button is clicked.
    public void onclick(View view)
    {
        //Makes a variable for the entered number
        Double amount;
        Double product;
        Double variable;

        // constants
        final double one = 1; 
        final double two = 2;
        final double three = 3;


        if (view.getId() == R.id.button1)
        {
          variable = one;
        }
        if (view.getId() == R.id.button2)
        {
            variable = two;
        }
        if (view.getId()== R.id.button3)
        {
            variable = three;
        }




        //creates an editext and assigns the resource id of the xml edittext.
        EditText number = (EditText)findViewById(R.id.editText1);



        //Receives the input from the edittext, converts it to a double (number).
        amount = Double.parseDouble(number.getText().toString());
        //Calculates the product
        product = variable * number;


        //Creates a textview object, assigns the xml r.id, and then changes the text to report the amount.
         TextView t = (TextView)findViewById(R.id.textView2); 
            t.setText("Your product is: " + product);

    }



}
4

3 回答 3

6
 EditText number = (EditText)findViewById(R.id.editText1);


 product = variable * number;

number是类型EditText。你不能申请加倍*EditText

您的产品计算应为:

   product = variable * amount;

amount是您从中获得的价值EditText

于 2012-10-30T22:00:14.080 回答
3

您已将文本转换为名为 的值amount,但您忘记使用它。

线

product = variable * number;

应该

product = variable * amount;

这应该可以解决问题。

于 2012-10-30T22:00:19.233 回答
3
 //creates an editext and assigns the resource id of the xml edittext.
        EditText number = (EditText)findViewById(R.id.editText1);

        //Calculates the product
        product = variable * number;

您正在尝试将 adouble (variable)EditText (number)类型相乘,因此Error

编辑您的局部变量错误:

local variables不要获取它们的default值,initialize在方法中使用它们之前必须先获取它们

 public void onclick(View view)
    {
        //Makes a variable for the entered number
        Double amount=0.0; //initialize this
        Double product=0.0;//initialize this
        Double variable=0.0;//initialize this
于 2012-10-30T22:03:02.107 回答