2016-07-05 2 views
-1

メソッドonCreateOptionsMenu(Menu menu)の2つのパラメータメニューとメニューはどのように使用されていますか? thisパラメータがonCreateOptionsMenuとは何ですか(メニューメニュー)

Intent intent = new Intent(this, DisplayMessageActivity.class); 
+0

メニューはクラス&メニューはそのクラスのオブジェクトです。 –

+1

Intentは最初のパラメータとして 'Context'をとります。 'Intent intent = new Intent(this、DisplayMessageActivity.class); 'という文では、' this'パラメータはクラスの現在のコンテキストを表します。 – SripadRaj

答えて

7

メニューで使用されている理由 私は別の質問を持っていることは、パラメータメニューのちょうどタイプです。たとえば、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); 
} 

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

入力したインテントの例の詳細については、thisをチェックしてください。

0

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

For more reference

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

この方法を実施するための意図は、あなたがR.menu.game_menuレイアウトファイルで定義itensで渡さmenuデ移入することです。あなたは彼らが選択されている場合、いくつかのアクションを追加したい場合がありますitensでメニューを膨張した後

のJava

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

Kotlin

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); 
    } 
} 

Kotlin

override fun onOptionsItemSelected(item: MenuItem): Boolean { 
    return when (item.itemId) { 
     R.id.menu_item -> { 
      // Action goes here 
      true 
     } 
     else -> super.onOptionsItemSelected(item) 
    } 
} 
関連する問題