標籤:android style blog http color strong
Options Menu
建立選項菜單的步驟:
1、覆蓋Activity 的onCreateOptionMenu(Menu menu)方法,當菜單第一次被開啟時調用
2、調用Menu 的add( )方法添加功能表項目(MenuItem),同時可以調用MenuItem 的setIcon( )方法來為功能表項目設定表徵圖
3、當功能表項目(MenuItem)被選擇時,覆蓋Activity 的onOptionsItemSelected(MenuItem item)來響應事件
public class MainActivity extends Activity { // 定義一些變數,後面直接拿來用 private static final int START_ITEM = Menu.FIRST; private static final int OVER_ITEM = Menu.FIRST + 1; private static final int SET_ITEM1 = Menu.FIRST + 2; private static final int SET_ITEM2 = Menu.FIRST + 3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // 添加功能表項目(組ID,功能表項目ID,排序,標題) menu.add(0, START_ITEM, 100, "開始"); menu.add(0, OVER_ITEM, 200, "結束"); // 添加子功能表 SubMenu sub1 = menu.addSubMenu("設定"); sub1.add(1, SET_ITEM1, 300, "設定聲音"); sub1.add(1, SET_ITEM2, 400, "設定案頭"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case START_ITEM: // 提示資訊 Toast.makeText(this, "開始", Toast.LENGTH_SHORT).show(); break; case OVER_ITEM: // 提示資訊 Toast.makeText(this, "結束", Toast.LENGTH_SHORT).show(); break; case SET_ITEM1: // 提示資訊 Toast.makeText(this, "聲音設定", Toast.LENGTH_SHORT).show(); break; case SET_ITEM2: // 提示資訊 Toast.makeText(this, "設定案頭", Toast.LENGTH_SHORT).show(); break; default: break; } return super.onOptionsItemSelected(item); }}
Context Menu
顧名思義,與上下文(環境)有關。思想類似於Windows中的按右鍵彈出的捷徑功能表。操作時需要長時間按住某個東東不放。
建立操作功能表的步驟:
1、覆蓋Activity 的onCreateContextMenu(Menu menu)方法,調用Menu的add()方法添加功能表項目(MenuItem)。
2、覆蓋Activity 的onContextItemSelected(MenuItem iitem)來響應事件。
3、調用registerForContextMenu( )方法來為視圖註冊操作功能表。
public class MainActivity2 extends Activity { private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); // 擷取BUTTON對象 btn1 = (Button) findViewById(R.id.button1); //在button上註冊操作功能表 registerForContextMenu(btn1); } // 建立操作功能表的事件方法 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.menu.menu_main2, menu); } // 操作功能表項目觸發事件 @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.start: Toast.makeText(this, "開始。。。", Toast.LENGTH_SHORT).show(); break; case R.id.over: Toast.makeText(this, "結束。。。", Toast.LENGTH_SHORT).show(); break; default: break; } return super.onContextItemSelected(item); }}
Popup Menu
彈出式菜單.
快顯功能表是停靠在一個View上的一個模式菜單。如果View對象下方有空間,那麼快顯功能表將顯示在停靠對象的下方,否則會顯示在上方。這是非常有用的。
public class MainActivity3 extends Activity implements OnMenuItemClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main3); } public void showPopupMenu(View v){ //建立彈出式菜單對象(最低版本11) PopupMenu popup = new PopupMenu(this,v); //擷取菜單填充器 MenuInflater inflater = popup.getMenuInflater(); //填充菜單 inflater.inflate(R.menu.menu_main3, popup.getMenu()); //設定功能表項目的單擊事件 popup.setOnMenuItemClickListener(this); popup.show(); } //彈出式菜單的單擊事件處理 @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.copy: Toast.makeText(this, "複製。。。", Toast.LENGTH_LONG).show(); break; case R.id.del: Toast.makeText(this, "刪除。。。", Toast.LENGTH_LONG).show(); break; default: break; } return false; }}
我是天王蓋地虎的分割線
原始碼:http://pan.baidu.com/s/1dD1Qx01
menu學習.zip
轉載請註明出處:http://www.cnblogs.com/yydcdut