Option Menu && Context Menu的使用

 

 

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
	android:id="@+id/contextTextView"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="20dp"
    android:text="长按此文本框,显示文本框上下文菜单"
    />
<EditText 
	android:id="@+id/contextEditText"
	android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:text="长按编辑文本框,显示编辑文本框的上下文菜单" />
</LinearLayout>

 

<group>属性
id
menuCategory:对菜单进行分类,定义菜单的优先级,有效值为container、system、secondary和alternative
orderInCategory:一个分类排序整数
checkableBehavior:选择行为,单选,多选还是其他。有效值为none,all和single。
visible
enabled
<item>属性
id
menuCategory:菜单分类
orderInCategory:分类排序
title:菜单标题
titleCondensed:浓缩标题,适合标题太长的时候使用
icon:菜单图标
alphabeticShortcut:字符快捷键
numericShortcut:数字快捷键
checkable:是否可选
checked:是否已经被选
visible
enabled

option_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/item1" android:title="menu 1">
        <menu>
            <group android:id="@+id/group1">
                <item android:id="@+id/item7" android:title="menu 1-1"></item>
                <item android:id="@+id/item8" android:title="menu 1-2"></item>
                <item android:id="@+id/item9" android:title="menu 1-3"></item>
            </group>
        </menu>
    </item>
    <item android:id="@+id/item2" android:title="menu 2">
        <menu>
            <group android:id="@+id/group2">
                <item android:id="@+id/item10" android:title="menu 2-1"></item>
                <item android:id="@+id/item11" android:title="menu 2-2"></item>
                <item android:id="@+id/item12" android:title="menu 2-3"></item>
            </group>
        </menu>
    </item>
    <item android:id="@+id/item3" android:title="menu 3"></item>
    <item android:id="@+id/item4" android:title="menu 4"></item>
    <item android:id="@+id/item5" android:title="about"></item>
    <item android:id="@+id/item6" android:title="exit"></item>
    
</menu>


MenuExampleActivity.java

package com.zeph.android.menu.example;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MenuExampleActivity extends Activity {
	private MenuInflater mi;
	private EditText mEditText;
	private TextView mTextView;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		mEditText = (EditText) findViewById(R.id.contextEditText);
		mTextView = (TextView) findViewById(R.id.contextTextView);
		registerForContextMenu(mEditText);
		registerForContextMenu(mTextView);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		mi = getMenuInflater();
		mi.inflate(R.menu.option_menu, menu);
		return super.onCreateOptionsMenu(menu);
	}
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		int id = item.getItemId();
		switch (id) {
		case R.id.item5:
			Toast.makeText(getApplicationContext(), "BenZeph", Toast.LENGTH_SHORT).show();
			break;
		case R.id.item6:
			finish();
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}
	
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		if (v.equals(mTextView)) {
			menu.setHeaderTitle("TextView Menu");
			menu.add("TextView Menu 1");
			menu.add("TextView Menu 2");
			menu.add("TextView Menu 3");
			menu.add("TextView Menu 4");
		} else if (v.equals(mEditText)) {
			menu.setHeaderTitle("EditText Menu");
		}
	}
}


 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值