Android活動中使用Menu
阿新 • • 發佈:2018-12-17
首先我們在我們的res檔案下新建一個Directory,然後在建立一個Menu source file.
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/add_item" android:title="Add"/> <item android:id="@+id/remove_item" android:title="Remove"/> </menu>
這裡我們建立兩個選單項,裡面的<item>標籤就是用來建立具體的某一個選單項,然後通過android:id來指定唯一的識別符號,通過android:title給這個選單項指定一個名稱。
package com.example.sunshunli.menutest; import android.support.v7.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); } //當用戶點選Menu按鈕的時候會呼叫這個方法。 public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.main,menu); return true; } //當用戶點選Menu的選項的時候會呼叫這個方法 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.add_item: Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show(); break; case R.id.remove_item: Toast.makeText(this, "You clicked remove", Toast.LENGTH_SHORT).show(); break; default: } return true; } }
我們重寫onCreateOptionsMenu()方法,在AS中可以使用快捷鍵來快速實現重寫,Ctrl+o.
通過getMenuInflater()方法能夠收到MenuInflater物件,在呼叫它的inflate()方法就給當前的活動建立了選單。
inflate接受兩個引數,第一個引數用於指定我們通過那一個資原始檔來建立選單,第二個引數用於指定我們的選單項將新增到哪一個Menu物件當中,這裡直接使用onCreateOptionsMenu()方法傳入的一個引數。然後返回的是Ture,表示允許建立的選單顯示出來。否則不顯示。