菜单资源(menu)的简单使用

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

Android中的菜单分为选项菜单、上下文菜单和子菜单,都可以在XML文件中声明定义,在代码中通过MenuInflater类使用。

典型菜单资源文件结构是这样的:

根元素,在根元素里面嵌套子元素,元素中也可嵌套形成子菜单。表示一个菜单组,相同的菜单组可以一起设置属性。

下面通过一个实例来演示,本实例中定义了一个文件系统的菜单信息,主菜单包括File、Edit、Help三个菜单项。File菜单有New、Open、Save子菜单项;

Edit菜单有Cut、Copy、Past子菜单,Help菜单有About和Exit子菜单项。Help子菜单可以响应单击事件。

Activity:

package com.lovo;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

public class TestMenuActivity extends Activity {
	/** 创建一个MenuInflater对象 */
	private MenuInflater mi = new MenuInflater(this);

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.test_menu);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// 调用MenuInflater的inflate方法,通过配置文件创建菜单
		mi.inflate(R.menu.file_menu, menu);
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		// 显示关于对话框
		case R.id.about:
			aboutAlert("本实例演示的是如何使用菜单资源定义菜单!");
			break;
		case R.id.exit:
			exitAlert("真的要退出吗?");
			break;
		}
		return true;
	}

	private void exitAlert(String msg) {
		// 实例化AlertDialog.Builder对象
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		// 设置显示信息
		builder.setMessage(msg).setCancelable(false)
		// 确定按钮
				.setPositiveButton("确定", new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						// 结束Activity
						finish();
					}
				})
				// 取消按钮
				.setNegativeButton("取消", new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						return;
					}
				});
		// 创建对话框
		AlertDialog alert = builder.create();
		// 显示对话框
		alert.show();
	}

	private void aboutAlert(String message) {
		// 实例化AlertDialog.Builder对象
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage(message).setCancelable(false)
		// 确定按钮
				.setPositiveButton("确定", new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
					}
				});
		// 创建对话框
		AlertDialog alert = builder.create();
		// 显示对话框
		alert.show();
	}
}



    


menuXML:




    
        
            
                
                
                
            
        
    
    
        


            
            
                
                
                
            
        
    
    
        
            
                
                
            
        
    



 

你可能感兴趣的:(Android,Android之旅,菜单,Android)