Menu(選單)是 Android 應用中非常重要的組成部分,Android 擁有 3種 Menu 功能,包括 Options Menu(選項選單)、ContextMenu(上下文選單)和 Pop-up Menu(彈窗選單)。
Android Studio Options Menu(選項選單) |
- Options Menu(選項選單):是 android 中最常見的選單功能表,通過 Menu 鍵來調用。
- ContextMenu(上下文選單):通過長按某個視圖元件後出現的選單功能表,該元件需註冊上下文選單功能表。
- 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(選項選單) |
沒有留言:
張貼留言