我刚开始使用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();
}
});
}
...
}
答案 0 :(得分:1)
答案很简单,@Override
tag添加了一个编译时检查,以查看某个方法是否覆盖了超类中的方法。
由于Android的所有Activity类(此处为onCreate2()
)都没有AppCompatActivity
方法,因此您无法覆盖它。
您必须删除@Override
标记才能编译代码,但onCreate2()
永远不会执行。为此,请查看Android Activtiy Lifecycle。在创建活动时调用OnCreate()
,此时将执行方法中的代码。
你不能只是将随机方法放入一个类中,并认为它们将被执行。必须从某个地方调用它们,在你的情况下onCreate()
从它的超类中被调用,但onCreate2()
将永远不会被调用,并且不会使用错误 {{1标签。