Android Options Menu Example

 


Android Options Menu Example

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:

Post a Comment

0 Comments