大家好,我們上一節講的是LayoutInflater
的 使用,而這一節我將講一下MenuInflater
,顧名思義,LayoutInflater
是用來解析定義在layout
下的布局檔案,那麼MenuInflater
是不是用來解析定義在menu
目錄下的菜單布局檔案呢? 恭喜你答對了!(*^__^*) 嘻嘻……
我們傳統意義上 的定義菜單感覺比較繁瑣,當我們使用MenuInflater
來產生菜單,你會發現是多麼的爽朗,呵呵,我今天的小Demo,是定義四個菜單,並且實現了一個菜單事件。就是我們點擊設定
(Setting
)菜單,進入手機設定狀態!下面看一下:
下面是實現Demo
的詳細步驟:
一、建立一個Android
工程我們命名為MenuInflaterDemo
.
二、在res
目錄下建立menu
目錄,並且建立options_menu.xml
(我們定義的菜單)檔案,代碼如下:
<?xml version="1.0" encoding="utf-8"?><br /><menu<br /> xmlns:android="http://schemas.android.com/apk/res/android"><br /> <item android:id="@+id/menu_add"<br /> android:title="Add"<br /> android:icon="@android:drawable/ic_menu_add"<br /> /><br /> <item android:id="@+id/menu_wallaper"<br /> android:title="Wallpaper"<br /> android:icon="@android:drawable/ic_menu_gallery"<br /> /><br /> <item android:id="@+id/menu_search"<br /> android:title="Search"<br /> android:icon="@android:drawable/ic_search_category_default"<br /> /><br /> <item android:id="@+id/menu_setting"<br /> android:title="Settings"<br /> android:icon="@android:drawable/ic_menu_preferences"<br /> /><br /></menu><br />
三、主類MenuInflaterDemo.java
的編碼,這裡寫的代碼很少哦,我這裡唯寫了第四個菜單(Settings
)的響應事件.全部代碼如下:
package com.android.tutor;<br />import android.app.Activity;<br />import android.content.Intent;<br />import android.os.Bundle;<br />import android.view.Menu;<br />import android.view.MenuInflater;<br />import android.view.MenuItem;<br />public class MenuInflaterDemo extends Activity {<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);<br /> }</p><p> @Override<br /> public boolean onCreateOptionsMenu(Menu menu) {<br /> MenuInflater inflater = getMenuInflater();<br /> inflater.inflate(R.menu.options_menu, menu);<br /> return true;<br /> }</p><p> @Override<br /> public boolean onOptionsItemSelected(MenuItem item) {<br /> switch (item.getItemId()) {<br />case R.id.menu_add:</p><p>break;<br />case R.id.menu_wallaper:<br />break;<br />case R.id.menu_search:<br />break;<br />case R.id.menu_setting:<br />showSettings();<br />break;<br />}<br /> return super.onOptionsItemSelected(item);<br /> }</p><p> private void showSettings(){</p><p> final Intent settings = new Intent(android.provider.Settings.ACTION_SETTINGS);<br /> settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |<br /> Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);</p><p> startActivity(settings);<br /> }<br />}
四、運行代碼之,點擊模擬器上的menu
按鈕將會出現上述!
Ok~今天就到這裡,祝大家周末愉快!!!!