android菜單(menu)用法

來源:互聯網
上載者:User

Android手機專門用一個按鍵“menu“來顯示菜單。

    要實現菜單功能,首先要通過方法onCreateOptionMenu來建立菜單,建立方法有兩種:一種是直接匯入有menu的xml檔案,一種是用類Menu的方法直接添加。建立好菜單後,用事件監聽器onOptionItemSelected對能夠觸發的事件進行監聽。

    下面這個例子有兩個Activity,分別有上面的兩種方法實現menu,每個menu裡都有事件監聽器進行Activity跳轉和退出。

1.資源檔下的menu檔案res/menu/menu.xml

[java]
view plaincopyprint?
  1. <menu xmlns:android="http://schemas.android.com/apk/res/android">  
  2.     <item android:id="@+id/about"  
  3.           android:title="關於" />  
  4.     <item android:id="@+id/exit"  
  5.           android:title="退出" />  
  6. </menu>  

<menu xmlns:android="http://schemas.android.com/apk/res/android"><br /> <item android:id="@+id/about"<br /> android:title="關於" /><br /> <item android:id="@+id/exit"<br /> android:title="退出" /><br /></menu>

Activity01.java

[java]
view plaincopyprint?
  1. package com.yarin.android.Examples_04_13;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.Menu;  
  7. import android.view.MenuInflater;  
  8. import android.view.MenuItem;  
  9.   
  10. public class Activity01 extends Activity  
  11. {  
  12.     /** Called when the activity is first created. */  
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState)  
  15.     {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.main);  
  18.     }  
  19.   
  20.     /*建立menu*/  
  21.     public boolean onCreateOptionsMenu(Menu menu)  
  22.     {  
  23.         //MenuInflater class is used to instantiate menu XML files into Menu objects  
  24.         MenuInflater inflater = getMenuInflater();  
  25.         //設定menu介面為res/menu/menu.xml  
  26.         inflater.inflate(R.menu.menu, menu);  
  27.         return true;  
  28.     }  
  29.   
  30.     /*處理菜單事件*/  
  31.     public boolean onOptionsItemSelected(MenuItem item)  
  32.     {  
  33.         //得到當前選中的MenuItem的ID,
      
  34.         int item_id = item.getItemId();  
  35.   
  36.         switch (item_id)  
  37.         {  
  38.             case R.id.about:  
  39.                 /* 建立一個Intent對象 */  
  40.                 Intent intent = new Intent();  
  41.                 /* 指定intent要啟動的類 */  
  42.                 intent.setClass(Activity01.this, Activity02.class);  
  43.                 /* 啟動一個新的Activity */  
  44.                 startActivity(intent);  
  45.                 /* 關閉當前的Activity */  
  46.                 Activity01.this.finish();  
  47.                 break;  
  48.             case R.id.exit:  
  49.                 Activity01.this.finish();  
  50.                 break;  
  51.         }  
  52.         return true;  
  53.     }  
  54. }  

package com.yarin.android.Examples_04_13;</p><p>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;</p><p>public class Activity01 extends Activity<br />{<br />/** Called when the activity is first created. */<br />@Override<br />public void onCreate(Bundle savedInstanceState)<br />{<br />super.onCreate(savedInstanceState);<br />setContentView(R.layout.main);<br />}</p><p>/*建立menu*/<br />public boolean onCreateOptionsMenu(Menu menu)<br />{<br />//MenuInflater class is used to instantiate menu XML files into Menu objects<br />MenuInflater inflater = getMenuInflater();<br />//設定menu介面為res/menu/menu.xml<br />inflater.inflate(R.menu.menu, menu);<br />return true;<br />}</p><p>/*處理菜單事件*/<br />public boolean onOptionsItemSelected(MenuItem item)<br />{<br />//得到當前選中的MenuItem的ID,<br />int item_id = item.getItemId();</p><p>switch (item_id)<br />{<br />case R.id.about:<br />/* 建立一個Intent對象 */<br />Intent intent = new Intent();<br />/* 指定intent要啟動的類 */<br />intent.setClass(Activity01.this, Activity02.class);<br />/* 啟動一個新的Activity */<br />startActivity(intent);<br />/* 關閉當前的Activity */<br />Activity01.this.finish();<br />break;<br />case R.id.exit:<br />Activity01.this.finish();<br />break;<br />}<br />return true;<br />}<br />}<br />

Activity02.java

 

[java]
view plaincopyprint?
  1. package com.yarin.android.Examples_04_13;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.Menu;  
  7. import android.view.MenuItem;  
  8.   
  9. public class Activity02 extends Activity  
  10. {  
  11.     public void onCreate(Bundle savedInstanceState)  
  12.     {  
  13.         super.onCreate(savedInstanceState);  
  14.         /* 設定顯示main2.xml布局 */  
  15.         setContentView(R.layout.main2);  
  16.     }  
  17.   
  18.     /*建立menu*/  
  19.     public boolean onCreateOptionsMenu(Menu menu)  
  20.     {  
  21.         //為menu新增內容   
  22.         menu.add(0, 0, 0, R.string.ok);  
  23.         menu.add(0, 1, 1, R.string.back);  
  24.         return true;  
  25.     }  
  26.   
  27.     /*處理menu的事件*/  
  28.     public boolean onOptionsItemSelected(MenuItem item)  
  29.     {  
  30.         //得到當前選中的MenuItem的ID,   
  31.         int item_id = item.getItemId();  
  32.   
  33.         switch (item_id)  
  34.         {  
  35.             case 0:  
  36.             case 1:  
  37.                 /* 建立一個Intent對象 */  
  38.                 Intent intent = new Intent();  
  39.                 /* 指定intent要啟動的類 */  
  40.                 intent.setClass(Activity02.this, Activity01.class);  
  41.                 /* 啟動一個新的Activity */  
  42.                 startActivity(intent);  
  43.                 /* 關閉當前的Activity */  
  44.                 Activity02.this.finish();  
  45.                 break;  
  46.         }  
  47.         return true;  
  48.     }  
  49. }  

package com.yarin.android.Examples_04_13;</p><p>import android.app.Activity;<br />import android.content.Intent;<br />import android.os.Bundle;<br />import android.view.Menu;<br />import android.view.MenuItem;</p><p>public class Activity02 extends Activity<br />{<br />public void onCreate(Bundle savedInstanceState)<br />{<br />super.onCreate(savedInstanceState);<br />/* 設定顯示main2.xml布局 */<br />setContentView(R.layout.main2);<br />}</p><p>/*建立menu*/<br />public boolean onCreateOptionsMenu(Menu menu)<br />{<br />//為menu新增內容<br />menu.add(0, 0, 0, R.string.ok);<br />menu.add(0, 1, 1, R.string.back);<br />return true;<br />}</p><p>/*處理menu的事件*/<br />public boolean onOptionsItemSelected(MenuItem item)<br />{<br />//得到當前選中的MenuItem的ID,<br />int item_id = item.getItemId();</p><p>switch (item_id)<br />{<br />case 0:<br />case 1:<br />/* 建立一個Intent對象 */<br />Intent intent = new Intent();<br />/* 指定intent要啟動的類 */<br />intent.setClass(Activity02.this, Activity01.class);<br />/* 啟動一個新的Activity */<br />startActivity(intent);<br />/* 關閉當前的Activity */<br />Activity02.this.finish();<br />break;<br />}<br />return true;<br />}<br />}</p><p>

本例用到了兩個Activity,不要忘記在AndroidManifest.xml中聲明。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.