ch04 Menu

--------------------------------------------strings.xml--------------------------------------------

<resources>

    <string name="app_name">com.ch04</string>

    <string name="hello_world">Hello world!</string>

    <string name="menu_settings">Set</string>

    <string name="menu_apple">苹果</string>

    <string name="menu_orange">橘子</string>

    <string name="menu_banana">香蕉</string>

    <string name="menu_peach">桃子</string>

    <string name="menu_peach_b">大桃子</string>

    <string name="menu_peach_s">小桃子</string>

    <string name="menu_copy">复制</string>

    <string name="menu_stick">黏贴</string>

    <string name="title_activity_main">com.ch04</string>

</resources>

--------------------------------------------Layout activity_main.xml-----------------------------

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" android:id="@+id/layout">

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="@string/hello_world"

        tools:context=".MainActivity" />

</RelativeLayout>

--------------------------------------------Menu activity_main.xml------------------------------

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item

        android:id="@+id/menu_settings"

        android:orderInCategory="100"

        android:title="@string/menu_settings"/>

    <item

        android:id="@+id/menu_apple"

        android:orderInCategory="10"

        android:title="@string/menu_apple"/>

    <item

        android:id="@+id/menu_orange"

        android:orderInCategory="20"

        android:title="@string/menu_orange"/>

</menu>

--------------------------------------------MainActivity.java--------------------------------------

package com.ch04;

import android.app.Activity;

import android.os.Bundle;

import android.view.ContextMenu;

import android.view.ContextMenu.ContextMenuInfo;

import android.view.Menu;

import android.view.MenuItem;

import android.view.SubMenu;

import android.view.View;

import android.widget.Toast;

/**

 * 

 * 项目名称:com.ch04   

 * 类名称:MainActivity    

 * 类描述:  选项菜单、子菜单、上下文菜单、动态菜单

 * 创建人:方勇  

 * 创建时间:2012-11-5 上午10:28:22   

 * Copyright (c) 方勇-版权所有

 */

public class MainActivity extends Activity {

private View layout;

/* 会员标识 */

private final static int GROUP_MENU_VIP = 1;

/* 游客标识 */

private final static int GROUP_MENU_NORMAL = 0;

/* 会员状态 */

private int state = 0;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViews();

// 注册上下文菜单

registerForContextMenu(layout);

}

/* 初始化UI菜单 */

private void findViews() {

layout = findViewById(R.id.layout);

}

/* 显示消息 */

private void showResults(String message) {

Toast.makeText(this, message, Toast.LENGTH_LONG).show();

}

/* 当选项菜单被选中后执行的事件 */

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.menu_apple:

showResults("苹果");

break;

case R.id.menu_orange:

showResults("橘子");

break;

case 10:

showResults("香蕉");

break;

default:

showResults("setting");

break;

}

return super.onOptionsItemSelected(item);

}

/* 选项菜单 */

@Override

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0, 10, 5, R.string.menu_banana);

/* 子菜单 */

SubMenu subMenu = menu.addSubMenu(1, 10, 10, R.string.menu_peach);

subMenu.add(1, 10, 10, R.string.menu_peach_b);

subMenu.add(1, 20, 20, R.string.menu_peach_s);

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

/* 动态菜单 */

@Override

public boolean onPrepareOptionsMenu(Menu menu) {

switch (state) {

case GROUP_MENU_VIP:

// 冻结菜单

menu.setGroupEnabled(GROUP_MENU_VIPtrue);

break;

case GROUP_MENU_NORMAL:

// 游客菜单

MenuItem items = menu.getItem(GROUP_MENU_VIP);

items.setVisible(false);

break;

}

return super.onPrepareOptionsMenu(menu);

}

/* 当上下文菜单被选中后执行的事件 */

@Override

public boolean onContextItemSelected(MenuItem item) {

showResults("上下文菜单");

return super.onContextItemSelected(item);

}

/* 上下文菜单 */

@Override

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {

menu.add(0, 100, 100, R.string.menu_copy);

menu.add(0, 200, 200, R.string.menu_stick);

super.onCreateContextMenu(menu, v, menuInfo);

}

}

--------------------------------------------游客效果------------------------------------------------

--------------------------------------------VIP效果------------------------------------------------

<!--EndFragment-->

猜你喜欢

转载自fangyong2006.iteye.com/blog/1717079