我刚开始在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();
}
});
}
...
}
答案相当简单,@Override
标记添加编译时检查以查看方法是否覆盖了超类中的方法。
而且由于在任何Android的活动类中都没有onCreate2()
方法(此处AppCompatActivity
),因此您无法覆盖它。
您必须删除@Override
标记才能使代码编译,但是onCreate2()
永远不会执行。为此,请查看 Android Activtiy 生命周期。OnCreate()
在创建活动时被调用,并且该方法中的代码将在此时执行。
你不能只是把随机方法放到一个类中,然后认为它们会被执行。它们必须从某个地方调用,在您的情况下onCreate()
从其超类中调用,但onCreate2()
永远不会被调用,也不会使用错误的@Override
标签进行编译。