android:選項(OptionMenu)和上下文菜單 (ContextMenu )簡單記錄(11

public class MainActivity extends Activity {
	private TextView text_show;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		text_show = (TextView) this.findViewById(R.id.text_show);
		// 建立上下文菜單時:要先註冊,而選項菜單就不用註冊
		registerForContextMenu(text_show);//註冊上下文菜單,長按TextView顯示出來
	}

	// 上下文菜單建立
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		// 第一種:靜態menu(菜單)的生成方法,XML文件中建立
		getMenuInflater().inflate(R.menu.menu, menu);
		// 第二種:動態建立菜單:用代碼建立
		// menu.add(Menu.NONE, 1, Menu.NONE, "選項一");
		// menu.add(Menu.NONE, 2, Menu.NONE, "選項二");
		// menu.add(Menu.NONE, 3, Menu.NONE, "選項三");
		super.onCreateContextMenu(menu, v, menuInfo);
	}

	// 上下文菜單監聽回調
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.menu_setting:
			Toast.makeText(this, "用戶設置", 500).show();
			break;
		case R.id.menu_exit:
			Toast.makeText(this, "用戶退出", 500).show();
			break;
		case R.id.font_red:
			text_show.setTextColor(Color.RED);
			break;
		}
		return super.onContextItemSelected(item);
	}

	// OptionMenu 選項菜單
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// 第一種:靜態menu(菜單)的生成方法,XML文件中建立
		getMenuInflater().inflate(R.menu.menu, menu);
		// 第二種:動態建立菜單:用代碼建立
		// menu.add(groupId, itemId, order, titleRes)
		// groupId:組 itemId:選項的id order:排序號 titleRes:選項名
		menu.add(Menu.NONE, 1, Menu.NONE, "選項一");
		menu.add(Menu.NONE, 2, Menu.NONE, "選項二");
		menu.add(Menu.NONE, 3, Menu.NONE, "選項三");
		return super.onCreateOptionsMenu(menu);
	}

	// OptionMenu 選項菜單監聽
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.menu_setting:
			Toast.makeText(this, "用戶設置", 500).show();
			break;
		case R.id.menu_exit:
			Toast.makeText(this, "用戶退出", 500).show();
			break;
		case R.id.font_red:
			text_show.setTextColor(Color.RED);
			break;
		case 1:
			Toast.makeText(this, "選項一", 500).show();
			break;
		case 2:
			Toast.makeText(this, "選項2", 500).show();
			break;
		case 3:
			Toast.makeText(this, "選項3", 500).show();
			break;
		}

		return super.onOptionsItemSelected(item);
	}
}

//菜單配置文件 放在文件夾res/menu/下
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- orderInCategory="1" 決定菜單選項排序 -->
    <!-- showAsAction="always"在頂部顯示菜單鍵 -->
    <item
        android:id="@+id/menu_setting"
        android:orderInCategory="2"
        android:title="設置">
    </item>
    <item
        android:id="@+id/menu_exit"
        android:orderInCategory="3"
        android:title="退出">
    </item>
    <!-- 二級普通菜單: -->

    <item
        android:id="@+id/menu_color"
        android:orderInCategory="1"
        android:title="顏色設置">
        <menu>
            <group>
                <item
                    android:id="@+id/font_red"
                    android:title="red"/>
                <item
                    android:id="@+id/font_blue"
                    android:title="blue"/>
                <item
                    android:id="@+id/font_green"
                    android:title="green"/>
                <item
                    android:id="@+id/font_yellow"
                    android:title="yellowed">
                </item>
            </group>
        </menu>
    </item>
    <!-- 二級可選項菜單: -->
    <item
        android:id="@+id/menu_font"
        android:orderInCategory="1"
        android:title="字體設置">

        <!-- checkableBehavior  屬性有三個可選值: all 爲多選, single 爲單選, none 爲不可選。爲 none 時就是一個普通菜單 -->
        <menu>
            <group android:checkableBehavior="single" >
                <item
                    android:id="@+id/font_20"
                    android:title="20sp"/>
                <item
                    android:id="@+id/font_30"
                    android:title="30sp"/>
                <item
                    android:id="@+id/font_40"
                    android:title="40sp"/>
                <item
                    android:id="@+id/font_50"
                    android:title="50sp">
                </item>
            </group>
        </menu>
    </item>

</menu>

上下文菜單java

相關文章
相關標籤/搜索