メソッドonCreateOptionsMenu(Menu menu)
の2つのパラメーターMenuおよびメニューと、このメソッドの使用方法は何ですか。でthis
パラメータが使用される理由について別の質問があります
Intent intent = new Intent(this, DisplayMessageActivity.class);
メニューは、単なるパラメータメニューのタイプです。たとえば、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を確認してください。
このメソッドを実装する目的は、R.menu.game_menu
レイアウトファイルで定義したアイテムをde menu
に設定することです。
@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
}
メニューをイテンで膨らませた後、それらが選択されたときにアクションを追加することができます:
@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)
}
}
まず、onCreateOptionsMenu(Menu menu)関数で、2つではなく1つのパラメーターのみを渡します。そこにメニュークラスのオブジェクトを渡します。この関数を使用してデフォルトの関数をオーバーライドし、メニューにボタンやテキスト、画像などを追加するなど、独自のメニューをカスタマイズします。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}