Java新手开发Android待办应用遇Method does not override错误求解决
修复方案:“Method does not override method from its superclass”错误
你的代码里有几个明确的问题,直接导致了这个报错,逐个修正即可解决:
1. 补全缺失的导入语句
代码里用到了Menu、MenuItem、Log类,但没有导入,编译器无法识别这些类型,导致方法签名和父类的不匹配,@Override注解因此报错。在现有导入下方添加:
import android.view.Menu; import android.view.MenuItem; import android.util.Log;
2. 修正onCreateOptionsMenu方法的参数错误
你把方法参数名menu误写成了类名Menu,两处调用都出错了:
原错误代码:
getMenuInflater().inflate(R.menu.main_menu, Menu); return super.onCreateOptionsMenu(Menu);
修改为:
getMenuInflater().inflate(R.menu.main_menu, menu); return super.onCreateOptionsMenu(menu);
3. 定义缺失的TAG常量
onOptionsItemSelected方法里用到了TAG但未定义,在MainActivity类中添加一个常量:
private static final String TAG = "MainActivity";
修正后的完整代码
package com.moltaexlips.todolist; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.util.Log; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_add_task: Log.d(TAG, "Add a new task"); return true; default: return super.onOptionsItemSelected(item); } } }
这些都是新手常犯的小失误,修正后就能正常编译运行。
内容的提问来源于stack exchange,提问作者MoltaExlips
相关产品推荐
相关产品推荐

