web-dev-qa-db-ja.com

onCreateOptionsMenu(メニューメニュー)とは

メソッドonCreateOptionsMenu(Menu menu)の2つのパラメーターMenuおよびメニューと、このメソッドの使用方法は何ですか。でthisパラメータが使用される理由について別の質問があります

Intent intent = new Intent(this, DisplayMessageActivity.class);
11
Prashant

メニューは、単なるパラメータメニューのタイプです。たとえば、string、dogなどの変数にString型を使用できます。この場合、menuという名前のパラメーターにMenu型があります。

OnCreateOptionsMenu()を使用して、アクティビティのオプションメニューを指定します。このメソッドでは、メニューリソース(XMLで定義)をコールバックで提供されるメニューに展開できます。

例えば:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}

詳細については、こちらをご覧ください link .

this に関しては、

インスタンスメソッドまたはコンストラクター内では、これは現在のオブジェクト(メソッドまたはコンストラクターが呼び出されるオブジェクト)への参照です。

例えば:

public void sendMessage() {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
}

コンストラクターは、最初のパラメーターとして2つのパラメーターとContextを取ります。 thisは環境データを表し、アプリケーション環境に関するグローバル情報を提供します。

指定したインテントの例の詳細については、 this outを確認してください。

20
Charles Li

このメソッドを実装する目的は、R.menu.game_menuレイアウトファイルで定義したアイテムをde menuに設定することです。

Java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.game_menu, menu);
    return true;
}

コトリン

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.game_menu, menu)
    return true
}

メニューをイテンで膨らませた後、それらが選択されたときにアクションを追加することができます:

Java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_item:
            // Action goes here
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

コトリン

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return when (item.itemId) {
        R.id.menu_item -> {
            // Action goes here
            true
        }
        else -> super.onOptionsItemSelected(item)
    }
}
11
Felipe Belluco

まず、onCreateOptionsMenu(Menu menu)関数で、2つではなく1つのパラメーターのみを渡します。そこにメニュークラスのオブジェクトを渡します。この関数を使用してデフォルトの関数をオーバーライドし、メニューにボタンやテキスト、画像などを追加するなど、独自のメニューをカスタマイズします。

詳細については

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}
0
madhan kumar