fangyong2006 发表于 2013-1-30 04:03:54

ch04 Menu

<div style="" class="Section0">--------------------------------------------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_VIP, true);
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);
}
}
--------------------------------------------游客效果------------------------------------------------
http://dl.iteye.com/upload/attachment/0076/2002/e2fb5a04-5a36-3151-8fd3-bd4351557d0e.png
--------------------------------------------VIP效果------------------------------------------------

http://dl.iteye.com/upload/attachment/0076/2546/8948c3c6-bc79-399a-a5a9-fcf84d08a391.png
页: [1]
查看完整版本: ch04 Menu