`
百合不是茶
  • 浏览: 345089 次
社区版块
存档分类
最新评论
阅读更多

Android里面也可用XML定义菜单资源,菜单分两种,一种是OptionMenu(点系统"Menu"键出来),另一种是ContextMenu必须长按才能出来;

 

 

optionMenu菜单的使用

1,创建选项菜单; onCreateOptionsMenu(Menu menu)

//创建选项菜单的方法
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		//menu.add(groupId, itemId, order, title) 
				//goupid 菜单项所在组的标示符
				//itemid 唯一表示的ID
				//order  菜单栏项的显示顺序
				//title 菜单项相似的文本
				MenuItem menu1 = menu.add(0, 0, 0, "item1");
				menu1.setAlphabeticShortcut('a');//分配快捷键的方法
				menu1.setIcon(R.drawable.ic_launcher);	//设置图标
				
				MenuItem menu2 = menu.add(0, 1, 1, "item2");
				menu1.setAlphabeticShortcut('b');//分配快捷键的方法
				menu1.setIcon(R.drawable.ic_launcher);	//设置图标
				
				MenuItem menu3 = menu.add(0, 2, 2, "item3");
				menu1.setAlphabeticShortcut('c');//分配快捷键的方法
				menu1.setIcon(R.drawable.ic_launcher);	//设置图标
				
				
				//使用简单方式创建三个菜单栏
				menu.add(0,4,4,"item4");
				menu.add(0,5,5,"item5");
				menu.add(0,6,6,"item6");	
		return true;
	}

 2,添加选项菜单的监听器onOptionsItemSelected(MenuItem item);

@Override//选项菜单的监听器
	public boolean onOptionsItemSelected(MenuItem item) {
		//MenuChoice方法接收Menuite方法的一个参数,并检查其ID确定被选中的菜单项
				int id = item.getItemId();
				switch (id) {
				case 0:
					Toast.makeText(this, "选中item1", 1000).show();
					break;
				case 1:
					Toast.makeText(this, "选中item2", 1000).show();
					break;
				case 2:
					Toast.makeText(this, "选中item3", 1000).show();
					break;
				case 4:
					Toast.makeText(this, "选中item4", 1000).show();
					break;
				case 5:
					Toast.makeText(this, "选中item5", 1000).show();
					break;
				case 6:
					Toast.makeText(this, "选中item6", 1000).show();
					break;
				}
		return false;
	}
	



 

 

ContextMenu菜单的使用;

 上下文菜单的使用必须是长按才会出来

     1,定义布局上下文菜单的布局文件menu_contextemnu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
   <item 
       android:id="@+id/rename"
       android:title="修改名字"
       />
   <item 
       android:id="@+id/dele"
       android:title="删除"
       />
   <item 
       android:id="@+id/open"
       android:title="打开"
       />
   <item 
       android:id="@+id/detailed"
       android:title="详细"
       />
</menu>

 

2,定义主配置文件  acticity_main.xml

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onclick"
        android:text="上下文菜单"
        />

 

3,java类的使用

//上下文菜单的使用
public class MainActivity extends Activity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.activity_main);
		//获得按钮
		Button btn=(Button)this.findViewById(R.id.btn);
		btn.setOnCreateContextMenuListener(this);
		//上下文菜单的使用必须要先注册组件
		this.registerForContextMenu(btn);
	}
	
      public void onclick(View v){
    	
      }
		@Override//创建上下文菜单
		public void onCreateContextMenu(ContextMenu menu, View v,
				ContextMenuInfo menuInfo) {
			super.onCreateContextMenu(menu, v, menuInfo);
		  getMenuInflater().inflate(R.layout.menu_contextemnu, menu);
		  
		}
		

		
		@Override//创建上下文监听器
		public boolean onContextItemSelected(MenuItem item) {
			int id = item.getItemId();
			switch (id) {
			case R.id.rename:
				Toast.makeText(this, "重命名", 1000).show();
				break;
			case R.id.dele:
				Toast.makeText(this, "删除", 1000).show();
				break;
			case R.id.detailed:
				Toast.makeText(this, "详细", 1000).show();
				break;
			case R.id.open:
				Toast.makeText(this, "打开", 1000).show();
				break;
			}
			return false;
		}
}

 


 

 

 

3, 选项菜单和上下文菜单监听器;

 

      onMenuItemSelected可以同时使用在有少量的选项菜单和上下文的情况,下面一个方法就搞定, 如果出现上下文监听器(onContextItemSelected),选项监听器(onOptionsItemSelected) ,onMenuItemSelected  则只会执行onMenuItemSelected  监听器

 @Override
	 // 菜单被选中的时候会执行
	 public boolean onMenuItemSelected(int featureId, MenuItem item) {
	 // TODO Auto-generated method stub
	 return true;
	 }

 

 

 

 

 

  • 大小: 22.5 KB
  • 大小: 25.2 KB
0
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics