1. 程式人生 > >Android-普通選單Menu

Android-普通選單Menu

第一種方式,使用Java方式 

第二種方式,使用menu.xml

 

package liudeli.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast;

public class MenuActivity extends
Activity { private static final int MENU_ITEM_CREATE = 0; private static final int MENU_ITEM_DELETE = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } /** * 第一步:選單選項 * 建立選單 * @param menu * @return
*/ @Override public boolean onCreateOptionsMenu(Menu menu) { /************************* 第一種方式,使用Java方式 ****************************/ /** * 引數一: 組號 * 引數二: 唯一的ID號 * 引數三: 排序號 * 引數四: 標題 */ MenuItem menu_item_create = menu.add(0, MENU_ITEM_CREATE, 0, "新建");
// 設定是否可點 menu_item_create.setEnabled(true); // 設定圖示,選單有時候載入不出來,但是不會報錯 menu_item_create.setIcon(android.R.drawable.ic_menu_camera); /** * 引數一: 組號 * 引數二: 唯一的ID號 * 引數三: 排序號 * 引數四: 標題 */ menu.add(0, MENU_ITEM_DELETE, 0, "刪除"); /** * 新增子選單 */ SubMenu subMenu = menu.addSubMenu("子選單"); subMenu.add(0, 11, 0, "子選單1"); subMenu.add(0, 12, 0, "子選單2"); /************************* 第二種方式,使用menu.xml ****************************/ // 選單載入器 MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.menu, menu); /************************* menu說明 ****************************/ /*menu.add("選單一"); // 新增選單 menu.add(1, Menu.FIRST, Menu.FIRST, "選單二"); // 新增選單 帶組號... int group1 = 1; int group2 = 2; menu.add(group1, 1, 1, "item1");// 新增選單 帶組號... menu.add(group1, 2, 2, "item2");// 新增選單 帶組號... menu.add(group2, 3, 3, "item3");// 新增選單 帶組號... menu.add(group2, 4, 4, "item4");// 新增選單 帶組號... menu.removeGroup(group1); //刪除一個組 menu.setGroupVisible(group1, false); //設定可見性 menu.setGroupEnabled(group2, false); //設定是否可點 menu.setGroupCheckable(group2, true, t); //設定一組選單的勾選情況*/ return super.onCreateOptionsMenu(menu); } /** * 第二步:選單的響應 * 處理menu的點選事件 */ @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); /** * 對應 第一種方式,使用Java方式 */ switch (id) { case MENU_ITEM_CREATE: Toast.makeText(this, item.getTitle() + " , 建立", Toast.LENGTH_LONG).show(); break; case MENU_ITEM_DELETE: Toast.makeText(this, item.getTitle() + " , 刪除", Toast.LENGTH_LONG).show(); break; case 11: // 上面程式碼 itemid定義是11 Toast.makeText(this, item.getTitle() + " , 第一個子選單", Toast.LENGTH_LONG).show(); break; case 12: // 上面程式碼 itemid定義是12 Toast.makeText(this, item.getTitle() + " , 第二個子選單", Toast.LENGTH_LONG).show(); break; default: break; } // item.getTitle() 獲取上面程式碼設定的標題 item.getItemId() 獲取上面程式碼設定的ItemId // Toast.makeText(this, item.getTitle() + " , " + item.getItemId(), Toast.LENGTH_LONG).show(); /** * 對應 第二種方式,使用menu.xml */ switch (id) { case R.id.menu_create: Toast.makeText(this, item.getTitle() + " , menu.xml建立", Toast.LENGTH_LONG).show(); break; case R.id.menu_delete: Toast.makeText(this, item.getTitle() + " , menu.xml刪除", Toast.LENGTH_LONG).show(); break; case R.id.menu_sub1: Toast.makeText(this, item.getTitle() + " , menu.xml子選單一", Toast.LENGTH_LONG).show(); break; case R.id.menu_sub2: Toast.makeText(this, item.getTitle() + " , menu.xml子選單二", Toast.LENGTH_LONG).show(); break; } // item.getTitle() 獲取上面程式碼設定的標題 item.getItemId() 獲取上面程式碼設定的ItemId // Toast.makeText(this, item.getTitle() + " , " + item.getItemId(), Toast.LENGTH_LONG).show(); return super.onOptionsItemSelected(item); } }

 

menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_create"
        android:icon="@android:drawable/ic_menu_add"
        android:title="X新建">
    </item>

    <item
        android:id="@+id/menu_delete"
        android:icon="@android:drawable/ic_menu_add"
        android:title="X刪除">
    </item>

    <item android:title="X子選單">

        <menu>

            <item
                android:id="@+id/menu_sub1"
                android:icon="@android:drawable/ic_menu_add"
                android:title="X子選單1">
            </item>

            <item
                android:id="@+id/menu_sub2"
                android:icon="@android:drawable/ic_menu_add"
                android:title="X子選單2">
            </item>

        </menu>

    </item>

</menu>

 

效果圖: