반응형

Option Menu

 

 

1. Create Option menu 

Android Resource Directory

 

Resource type : menu -> Select OK

 

menu
Menu Resource File
File Name : test_menu -> OK

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

</menu>

 

 

 

 

2. Create Menu Item 

 

test_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/test_1"
        android:title="Test1">
    </item>

    <item
        android:id="@+id/test_2"
        android:title="Test2">
    </item>

    <item
        android:id="@+id/test_3"
        android:title="Test3">
    </item>
</menu>

 

MainActivity.java

code -> override methods

 

onCreateOptionsMenu

onCreate OptionsMenu method 생성  ( 직접 작성해도 됨 )

ackage com.example.project7_optionmenu;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;

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) {
        return super.onCreateOptionsMenu(menu);
    }
}

 

코드 추가 ( xml, java 연결 )

...
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
		
        // 코드 추가
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.test_menu, menu);
		//
        return super.onCreateOptionsMenu(menu);
    }
...

 

 

2. Event 

onOptionsItemSelected

 

...
    // option menu event method
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch(item.getItemId())
        {
            case R.id.test_1:
                Toast.makeText(getApplicationContext(), "Test1", Toast.LENGTH_LONG).show();
            case R.id.test_2:
                Toast.makeText(getApplicationContext(), "Test2", Toast.LENGTH_LONG).show();
            case R.id.test_3:
                Toast.makeText(getApplicationContext(), "Test3", Toast.LENGTH_LONG).show();
        }

        return super.onOptionsItemSelected(item);
    }
    ...

 

 

 

 

 

 

 

full main java code 

package com.example.project7_optionmenu;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

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.test_menu, menu);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch(item.getItemId())
        {
            case R.id.test_1:
                Toast.makeText(getApplicationContext(), "Test1", Toast.LENGTH_LONG).show();
            case R.id.test_2:
                Toast.makeText(getApplicationContext(), "Test2", Toast.LENGTH_LONG).show();
            case R.id.test_3:
                Toast.makeText(getApplicationContext(), "Test3", Toast.LENGTH_LONG).show();
        }

        return super.onOptionsItemSelected(item);
    }
}

 

developer.android.com/guide/topics/ui/menus?hl=ko

 

메뉴  |  Android 개발자  |  Android Developers

메뉴는 수많은 유형의 애플리케이션에서 사용되는 보편적인 사용자 인터페이스 구성 요소입니다. 친숙하고 일관적인 사용자 경험을 제공하기 위해 Menu API를 사용하여 활동에서 사용자 작업과

developer.android.com

 

 

728x90
반응형

+ Recent posts