“方法不会覆盖或实现超类型的方法”

时间:2017-06-18 11:35:21

标签: java android

我刚开始使用Android Studio,我想制作一个音板,但是当我运行代码时,我一直收到此错误("Method does not override or implement a method from a supertype")。

public class MainActivity extends AppCompatActivity
{

    Button bt;
    @Override
    protected void onCreate(Bundle savedInstanceState) { ... }        

    Button bt1;
    @Override
    protected void onCreate2(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = (Button) findViewById(R.id.asta_e);
        final MediaPlayer mp = MediaPlayer.create(this, R.raw.sample);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mp.start();
            }
        });
    }

    ...
}

1 个答案:

答案 0 :(得分:1)

答案很简单,@Override tag添加了一个编译时检查,以查看某个方法是否覆盖了超类中的方法。

由于Android的所有Activity类(此处为onCreate2())都没有AppCompatActivity方法,因此您无法覆盖它。

您必须删除@Override标记才能编译代码,但onCreate2()永远不会执行。为此,请查看Android Activtiy Lifecycle。在创建活动时调用OnCreate(),此时将执行方法中的代码。

你不能只是将随机方法放入一个类中,并认为它们将被执行。必须从某个地方调用它们,在你的情况下onCreate()从它的超类中被调用,但onCreate2()将永远不会被调用,并且不会使用错误 {{1标签。