Android高手進階教程(六)之—-Android 中MenuInflater的使用(布局定義菜單)!

來源:互聯網
上載者:User

大家好,我們上一節講的是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~今天就到這裡,祝大家周末愉快!!!!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.