0

我今天刚开始学习Android,运行时我的程序崩溃了。对不起,我的无能,帮助将不胜感激。我一直试图弄清楚这一点。我一直在关注youtube教程,但是老师的eclipse是旧版本,学习起来非常困难。这是代码:

package com.audiack.newproj;

import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends Activity 
{
LinearLayout layout1;
EditText number1Text;
EditText number2Text;
Button calcButton,derp;
TextView answer;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    layout1 = new LinearLayout(this);
    number1Text = new EditText(this);
    number2Text = new EditText(this);
    calcButton = new Button(this);
    answer = new TextView(this);

    layout1.setOrientation(LinearLayout.VERTICAL);

    answer.setText("0");
    calcButton.setText("you suck at math bro");

    calcButton.setOnClickListener((android.view.View.OnClickListener) multiplyClicked);

    layout1.addView(number1Text);
    layout1.addView(number2Text);       
    layout1.addView(calcButton);
    layout1.addView(answer);

    setContentView(layout1);
}
    private OnClickListener multiplyClicked = new OnClickListener()
    {

        @Override
        public void onClick(DialogInterface arg0, int arg1) 
        {
            String firstString = number1Text.getText().toString();
            String secondString = number2Text.getText().toString();
            double firstNum = Double.parseDouble(firstString);
            double secondNum = Double.parseDouble(secondString);
            double result = firstNum * secondNum;
            String resultString = String.valueOf(result);
            answer.setText(resultString);
        }

    };

}

4

1 回答 1

0

您对要使用 android.view.View OnClickHander 的 onClickListener 使用了错误的导入

private OnClickListener multiplyClicked = new OnClickListener()
{

    @Override
    public void onClick(View v) 
    {

并将您的导入更改为此

import android.view.View;

您已经导入了一个不同的 EventHandler,因为您像这样调用它,所以它正在经历错误

calcButton.setOnClickListener((android.view.View.OnClickListener) multiplyClicked);

但是在您的导入中,您使用了不同的 OnClickHandler,因此它使用了它并给出了 InvalidCastException,因为它们是两个不同的 EventHandler。

所以如果你删除

import android.content.DialogInterface.OnClickListener;

并改变

calcButton.setOnClickListener(multiplyClicked); 

你应该解决那个无效的演员表。

于 2013-06-01T21:52:12.007 回答