Android Can';t在扩展视图的内部类中重写onCreateOptionMenu
我使用Java来创建视图,而不是XML。在扩展视图的内部类中,我不能覆盖Android Can';t在扩展视图的内部类中重写onCreateOptionMenu,android,Android,我使用Java来创建视图,而不是XML。在扩展视图的内部类中,我不能覆盖onCreateOptionMenu和onOptionSelected。我已经导入了android.view.Menu和android.view.view。 为什么它不起作用 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyGraphicV
onCreateOptionMenu
和onOptionSelected
。我已经导入了android.view.Menu
和android.view.view
。
为什么它不起作用
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(new MyGraphicView(this));
}
@Override // method doesn't override from its superclass
public class MyGraphicView extends View
{
public boolean onCreateOptionMenu(Menu menu)
{
super.onCreateOptionsMenu(menu); // error occures here
menu.add(0, 1, 0, "Drawing line");
menu.add(0, 2, 0, "Drawing circle");
return true;
}
}
我已经为您的案例创建了一个新项目,它正在工作 您不需要创建额外的类来拥有
选项菜单
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 0, "Drawing line");
menu.add(0, 2, 0, "Drawing circle");
return super.onCreateOptionsMenu(menu);
}
}
onCreateOptionMenu
是活动的方法
而不是视图
。在转向技术之前,请阅读Java的基础知识。@ADM@psikink您是对的,但我已经添加了一个答案,他不需要在MainActivity
中创建类。他可以直接通过选项菜单
获取信息,他需要在android官方网站上了解android的开发情况,但我正在尝试通过我的内部设置ContentViewclass@LuckyTuvshee你能告诉我们为什么需要按内部类设置contentView
吗?嗯,这只是我的课程示例,我遵循了,但最后问了这里好的,但是如何把这称为内部类呢?我明白了,没有必要把这称为内部类。如果这是有效的,请让我的回答被接受。很高兴帮助你。如果您将菜单
与xml
一起使用会更好,因为您可以更容易地将它们用于selectedItems
中,然后执行一个操作或类似操作。