2

为什么我必须告诉我的活动它的布局应该是两次?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); // <--
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu); // <--
    return true;
}

这两种方法有什么区别?我什么时候应该使用一个,什么时候使用另一个?

4

2 回答 2

9

它们是两个不同的东西。名字告诉你。R.layout.activity_main是你的布局,R.menu.activity_main是你的菜单

setContentView()设置 Activity 的布局。它包括按钮、文本视图等。

onCreateOptionsMenu()使您在按下菜单键时看到的菜单或填充 Android 3.0+ 上的 ActionBar。

他们做两件完全不同的事情。setContentView()经常需要(除非你有一个空的Activity),onCreateOptionsMenu()是可选的,取决于你是否需要显示更多选项。

于 2013-01-04T19:20:09.670 回答
0

gen 文件夹内的 java 文件将定义布局、ID 和菜单静态类。你会从那里得到这个想法。

于 2013-04-30T13:28:53.227 回答