2022年7月14日 星期四

Android Studio - Options Menu 選項選單(八十六)

Android Studio - Options Menu 選項選單(八十六):

Menu(選單)是 Android 應用中非常重要的組成部分,Android 擁有 3種 Menu 功能,包括 Options Menu(選項選單)、ContextMenu(上下文選單)和 Pop-up Menu(彈窗選單)。

Android Studio Options Menu(選項選單)
根據不同的情況和不同的樣式,Android 提供了以下 3 種選單功能表:
  1. Options Menu(選項選單):是 android 中最常見的選單功能表,通過 Menu 鍵來調用。
  2. ContextMenu(上下文選單):通過長按某個視圖元件後出現的選單功能表,該元件需註冊上下文選單功能表。
  3. Pop-up Menu(彈窗選單):是一種固定在 View 上的彈出式選單模型。
  • 操作系統:Windows 7 64-bit 版本
  • 開發環境:Android Studio 4.0.1 版本
  • Gradle 版本:6.1.1
  • 手機測試版本:API 19
  • 原程式:C:\DIY-Android-181-11 OptionsMenu bugworkshop
  • 程式:C:\DIY-Android-181-11 OptionsMenu bugworkshop

要定義 Options Menu(選項選單),首先需要在 res 資料夾下新建 menu 資料夾,它將用於存儲與 Menu 相關的所有 XML 檔。在 Android 2.3.x 及更低版本開發應用程式,系統會在使用者首次打開選單時呼叫 onCreateOptionsMenu() 以建立選項選單。在 Android 3.0 及以上版本開發,系統會在啟動活動時呼叫 onCreateOptionsMenu(),讓項目顯示在應用程式列中。

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: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_constraintLeft_toLeftOf="parent"

        app:layout_constraintRight_toRightOf="parent"

        app:layout_constraintTop_toTopOf="parent" />

 

</androidx.constraintlayout.widget.ConstraintLayout>


options_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/action_settings"

        android:orderInCategory="100"

        app:showAsAction="never"

        android:title="@string/action_settings"/>

    <item

        android:id="@+id/action_about"

        android:orderInCategory="100"

        app:showAsAction="never"

        android:title="@string/action_about"/>

</menu>


MainActivity.java:

package bugworkshop.basicmenu;

 

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.Menu;

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) {

        getMenuInflater().inflate(R.menu.options_menu, menu);

        return true;

    }

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        Toast.makeText(this, "Selected Item: " + item.getTitle() + "Id=" + item.getGroupId() +","+item.getItemId(), Toast.LENGTH_SHORT).show();

        switch (item.getItemId()) {

            case R.id.action_settings:

                // do your code

                return true;

            case R.id.action_about:

                // do your code

                return true;

            default:

                return super.onOptionsItemSelected(item);

        }

    }

}


Android Studio Options Menu(選項選單)

2022年 7月 14日(Thu)天氣報告
氣溫:58.0°F / 14.0°C @ 07:00
風速:每小時 2公里
降雨機會:2%
相對濕度:百分之 75%
天氣:晴

沒有留言:

張貼留言