Android Options Menu Example
In this tutorial, we will create an options menu in an Android app using Java and XML.
1. XML Files
main_menu.xml (res/menu/main_menu.xml)
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="Setting" android:id="@+id/setting"/> <item android:title="Help" android:id="@+id/help"/> <item android:title="About Us" android:id="@+id/about"/> </menu>
activity_main.xml (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
2. Java File
MainActivity.java (src/com/tecvipul/menudemo/MainActivity.java)
package com.tecvipul.menudemo; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.setting: Toast.makeText(getApplicationContext(), "Setting", Toast.LENGTH_SHORT).show(); return true; case R.id.help: Toast.makeText(getApplicationContext(), "Help", Toast.LENGTH_SHORT).show(); return true; } return super.onOptionsItemSelected(item); } }
3. Directory Structure
Make sure you create the following directory structure:
/res/menu/main_menu.xml /res/layout/activity_main.xml /src/com/tecvipul/menudemo/MainActivity.java
4. Important Note
If you're getting an error where "R.id.setting" is not resolving like this then add this below given line to your gradle.properties file:
android.nonFinalResIds = false
5. Video Tutorial
Watch this video tutorial for a step-by-step guide:
0 Comments
If you have any doubts, Please let me know