android studioでonOptionsItemSelectedメソッドを書く方法について知りたいです
解決したいこと
2024年2月現在の最新版のandroid studioでonOptionsItemSelectedメソッドを書く方法について知りたいです。
状況:
android studioでアプリを制作しています。
メニューボタンを作り、そのボタンをクリックした時、menuディレクトリで作成したxmlファイル内のMenuItem(item1、item2)をエミュレーターで画面に表示させることはできました。
しかし、そのMenuItemをクリックしてもonOptionsItemSelectedメソッド内部の処理は行われず、表示されたMenuItem(item1、item2)が画面から消えてしまいます。
処理が行われない原因はエラーが出ていないため分かりませんが、おそらく処理コードの記述ミス以前の問題だと考えています(その考えに至った理由は、最後に記述させていただいています)。
MainActivity.java、example_menu.xmlで書いているコード
MainActivity.javaで書いているコードを入力
```java:MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.example_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.item2) {
Toast.makeText(this, "Item2 selected", Toast.LENGTH_SHORT).show();
return true;
} else if (id == R.id.item1) {
Toast.makeText(this, "Item1 selected", Toast.LENGTH_LONG).show();
return true;
}
return super.onOptionsItemSelected(item);
}
example_menu.xmlで書いているコードを入力
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/item1"
android:icon ="@drawable/baseline_density_medium_24"
android:title="To Do List"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/item2"
android:title="Calendar"
app:showAsAction="never" />
</menu>
自分で試したこと
本来はonOptionsItemSelectedメソッドでIntentで画面遷移させようと思い、YouTubeの動画を見てコードを書いてみたのですが、画面遷移できなかったため、画面遷移に必要な処理をする部分のコードをToast.makeTextの処理に変えてみました。
Toast.makeTextの処理もされないため、メソッドが機能しない原因は、内部の処理部分のコードミスではなく、メソッドの書き方にあるのではないかと考えています。
2024年2月現在の最新版のandroid studioでonOptionsItemSelectedメソッドを書く方法について、お手数おかけしますが、どなたか教えていただけますと幸いです。