阅读《Android 从入门到精通》(27)——选项菜单

Posted SweetLoverFT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阅读《Android 从入门到精通》(27)——选项菜单相关的知识,希望对你有一定的参考价值。

选项菜单(OptionMenu)

使用 Menu 按键触发的菜单叫做选项菜单

android.R.drawable 属性




OptionMenu 示例

完整工程:http://download.csdn.net/detail/sweetloveft/9436986

本程序主要学习 OptionMenu 的使用,需要关注的是 MainActivity.java 里面的 onCreateOptionsMenu、onPrepareOptionsMenu、OnOptionsItemSelected、onOptionsMenuClosed 的响应,此外需要注意 Menu 的 add 方法。

1.MainActivity.java

package com.sweetlover.activity;

import com.sweetlover.optionmenu.R;

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

public class MainActivity extends Activity 

	private MenuItem miDelete = null;
	private MenuItem miSave = null;
	private MenuItem miHelp = null;
	private MenuItem miAdd = null;
	private MenuItem miDetail = null;
	private MenuItem miSend = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) 
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	

	@Override
	public boolean onCreateOptionsMenu(Menu menu) 
		// TODO Auto-generated method stub
		miDelete = menu.add(Menu.NONE, Menu.FIRST + 1, 1, "删除");
		miDelete.setIcon(android.R.drawable.ic_menu_delete);
		miSave = menu.add(Menu.NONE, Menu.FIRST + 2, 2, "保存");
		miSave.setIcon(android.R.drawable.ic_menu_save);
		miHelp = menu.add(Menu.NONE, Menu.FIRST + 3, 3, "帮助");
		miHelp.setIcon(android.R.drawable.ic_menu_help);
		miAdd = menu.add(Menu.NONE, Menu.FIRST + 4, 4, "添加");
		miAdd.setIcon(android.R.drawable.ic_menu_add);
		miDetail = menu.add(Menu.NONE, Menu.FIRST + 5, 5, "详细");
		miDetail.setIcon(android.R.drawable.ic_menu_info_details);
		miSend = menu.add(Menu.NONE, Menu.FIRST + 6, 6, "发送");
		miSend.setIcon(android.R.drawable.ic_menu_send);
		return super.onCreateOptionsMenu(menu);
	

	@Override
	public boolean onPrepareOptionsMenu(Menu menu) 
		// TODO Auto-generated method stub
		return super.onPrepareOptionsMenu(menu);
	

	@Override
	public boolean onOptionsItemSelected(MenuItem item) 
		// TODO Auto-generated method stub
		switch (item.getItemId()) 
		case Menu.FIRST + 1:
			Toast.makeText(MainActivity.this, "删除菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case Menu.FIRST + 2:
			Toast.makeText(MainActivity.this, "保存菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case Menu.FIRST + 3:
			Toast.makeText(MainActivity.this, "帮助菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case Menu.FIRST + 4:
			Toast.makeText(MainActivity.this, "添加菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case Menu.FIRST + 5:
			Toast.makeText(MainActivity.this, "详细菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case Menu.FIRST + 6:
			Toast.makeText(MainActivity.this, "发送菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		
		return super.onOptionsItemSelected(item);
	

	@Override
	public void onOptionsMenuClosed(Menu menu) 
		// TODO Auto-generated method stub
		super.onOptionsMenuClosed(menu);
		Toast.makeText(MainActivity.this, "选项菜单关闭了!", Toast.LENGTH_SHORT)
				.show();
	

2.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="30dp" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:textSize="20sp"
        android:text="@string/tittle" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:textSize="20sp"
        android:text="@string/note" />

</LinearLayout>

3.string.xml

<resources>

    <string name="app_name">OptionMenu</string>
    <string name="tittle">Option Menu Application</string>
    <string name="note">单击 Menu 键</string>

</resources>

以上是关于阅读《Android 从入门到精通》(27)——选项菜单的主要内容,如果未能解决你的问题,请参考以下文章

阅读《Android 从入门到精通》(28)——使用 XML 的选项菜单

阅读《Android 从入门到精通》(28)——使用 XML 的选项菜单

阅读《Android 从入门到精通》(29)——四大布局

阅读《Android 从入门到精通》(31)——Intent

阅读《Android 从入门到精通》(20)——图片视图

阅读《Android 从入门到精通》(30)——字体