2

アクティビティのレイアウトを 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;
}

これら2つの方法の違いは何ですか?. いつ一方を使用し、いつもう一方を使用する必要がありますか?

4

2 に答える 2

9

それらは2つの別個のものです。名前が教えてくれます。R.layout.activity_mainはレイアウト、R.menu.activity_mainメニュー用です。

setContentView()アクティビティのレイアウトを設定します。ボタン、TextViews などが含まれます。

onCreateOptionsMenu()メニュー キーを押したときに表示されるメニューを作成するか、Android 3.0 以降の ActionBar に入力します。

彼らは2つの完全に別々のことをします。setContentView()多くの場合必要になります (空の がない場合を除きますActivity) onCreateOptionsMenu()。さらにオプションを表示する必要があるかどうかに応じて、オプションです。

于 2013-01-04T19:20:09.670 に答える
0

gen フォルダー内の java ファイルには、レイアウト、ID、およびメニューの静的クラスが定義されます。そこから着想を得ます。

于 2013-04-30T13:28:53.227 に答える