Java Eclipse OnClickListener Main活动错误

Java Eclipse OnClickListener Main活动错误,java,android,eclipse,Java,Android,Eclipse,我的程序有问题 以下是错误: The type MainActivity must implement the inherited abstract method View.OnClickListener.onClick(View) 代码如下: import android.os.Bundle; import android.app.Activity; import android.view.View.OnClickListener; import android.speech.tts.Tex

我的程序有问题

以下是错误:

The type MainActivity must implement the inherited abstract method View.OnClickListener.onClick(View)
代码如下:

import android.os.Bundle;
import android.app.Activity;
import android.view.View.OnClickListener;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnInitListener, OnClickListener {

    private TextToSpeech tts;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tts = new TextToSpeech(this, this);
    }

    public void OnClick (View view){
        EditText et = (EditText) findViewById (R.id.editText1);
        tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
    }

    public void onInit (int status){
        Button button = (Button) findViewById (R.id.button1);
        button.setOnClickListener(this);
        tts.setLanguage(Locale.GERMAN);
        tts.setSpeechRate(1);
    }
}
我刚开始用eclipse编程,我真的是个初学者

那么我该怎么做才能解决这个问题呢

The type MainActivity must implement the inherited abstract method View.OnClickListener.onClick(View)
您需要实现
onClick(View)
。因为没有实现,所以会出现错误

所以换成

@Override
public void onClick (View view){ //OnClick  You has O in caps
EditText et = (EditText) findViewById (R.id.editText1);
tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
添加覆盖注释并将
OnClick
更改为
OnClick

您需要实现
onClick(View)
。因为没有实现,所以会出现错误

所以换成

@Override
public void onClick (View view){ //OnClick  You has O in caps
EditText et = (EditText) findViewById (R.id.editText1);
tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}

添加覆盖注释并将
OnClick
更改为
OnClick

请清理您的项目并重新构建它

您必须实现OnClickListener接口提供的所有方法。 当您在活动中实现onClickListener时,您的onclick方法应该像

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}

请清理您的项目并重新构建

您必须实现OnClickListener接口提供的所有方法。 当您在活动中实现onClickListener时,您的onclick方法应该像

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
是一个接口。您必须实现此接口提供的所有方法

public void onClick (View view){
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
我想这就是你在这里想要做的:

public void OnClick (View view){
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
但这不是正确的签名,应该是:

@Override
public void onClick (View view){ //note the 'o'
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
请注意,
@Override
注释不是必需的,但它有助于防止错误。如果标记为
@Override
的方法无法正确重写其超类中的方法,编译器将生成错误。

是一个接口。您必须实现此接口提供的所有方法

public void onClick (View view){
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
我想这就是你在这里想要做的:

public void OnClick (View view){
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
但这不是正确的签名,应该是:

@Override
public void onClick (View view){ //note the 'o'
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}

请注意,
@Override
注释不是必需的,但它有助于防止错误。如果标记为
@Override
的方法未能正确重写其超类中的方法,编译器将生成错误。

您差点就遇到了错误!只需将方法的名称更改为
onClick
,以便它实现接口指定的
onClick
方法

public void onClick (View view){
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
当一个类实现一个接口时,它必须为接口上列出的每个方法提供一个实现。类实现必须与接口上指定的签名(名称、参数、返回类型)匹配

public void onClick (View view){
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}

你差点就成功了!只需将方法的名称更改为
onClick
,以便它实现接口指定的
onClick
方法

public void onClick (View view){
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
当一个类实现一个接口时,它必须为接口上列出的每个方法提供一个实现。类实现必须与接口上指定的签名(名称、参数、返回类型)匹配

public void onClick (View view){
    EditText et = (EditText) findViewById (R.id.editText1);
    tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}