Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java setContentView(R.layout.activity_main)与getMenuInflater()的对比。充气(R.menu.activity_main,menu)_Java_Android_Inflate - Fatal编程技术网

Java setContentView(R.layout.activity_main)与getMenuInflater()的对比。充气(R.menu.activity_main,menu)

Java setContentView(R.layout.activity_main)与getMenuInflater()的对比。充气(R.menu.activity_main,menu),java,android,inflate,Java,Android,Inflate,为什么我必须两次告诉我的活动其布局应该是什么 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // <-- } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the

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

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;
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);//它们是两个独立的东西。名称告诉你。
R.layout.activity_main
是你的布局,
R.menu.activity_main
是你的菜单

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

onCreateOptionsMenu()


它们做两件完全不同的事情。
setContentView()
通常是必需的(除非您有一个空的
活动
),
onCreateOptions菜单()
是可选的,这取决于您是否需要显示更多选项。

gen文件夹中的java文件将定义布局、ID和菜单静态类。您将从中获得想法。

第一个用于活动窗口,第二个用于选项menuthe
R.layout
R.menu
是键。我明白了。通过“menu”你的意思是->?但是,当你创建一个片段时,你确实使用了充气器。为什么?为什么我不能对这些片段也使用setContentView?你在片段中谈论的是
getView()
。这是因为片段没有
setContentView()
方法。但是请注意,它没有使用
getMenuInflater()
,而是一个
LayoutInflater
。两者都会膨胀,但
LayoutInflater
是用于布局的。好的,我想我知道了。谢谢。我只是在学安卓编程,到目前为止还很混乱。我真的很感激。@user1949554:没问题!如果你能在我的答案之外检查一下空复选标记的话(接受这个答案)我们将不胜感激:)