这篇博客主要讲一下Android中关于菜单的一些典型例子。
一:选项菜单
添加菜单的选项有两种方法:
add(string) 参数是直接将菜单选项添加到菜单栏中
具体的实例:
package com.example.user.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //Activity中有onCreateOptionMenu()方法,程序员可以直接在调用 public boolean onCreateOptionsMenu(Menu menu){ super.onCreateOptionsMenu(menu); //添加菜单选项 menu.add("菜单选项一"); menu.add("菜单选项二"); menu.add("菜单选项三"); menu.add("菜单选项四"); menu.add("菜单选项五"); //返回true 则是显示菜单 return true; } }
结果如下:
第二种方法:add(int groudid ,int intendid, int order ,title)
参数含义:
groupid:分组ID
intendid:每个菜单选项的ID
order:菜单选项的排列ID
title:菜单名称
具体的实例:
package com.example.user.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //Activity中有onCreateOptionMenu()方法,程序员可以直接在调用 public boolean onCreateOptionsMenu(Menu menu){ super.onCreateOptionsMenu(menu); //添加菜单选项 int group1 = 1; int group2 = 2; menu.add(group1,1,1,"菜单选项一"); menu.add(group1,2,2,"菜单选项二"); menu.add(group2,3,4,"菜单选项三"); menu.add(group2,4,3,"菜单选项四"); //返回true 则是显示菜单 return true; } }
结果如下:
二:响应菜单项
菜单建立好之后,必须要为其写响应代码,响应代码如下:
package com.example.user.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//Activity中有onCreateOptionMenu()方法,程序员可以直接在调用
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
//添加菜单选项
int group1 = 1;
int group2 = 2;
menu.add(group1,1,1,"菜单选项一");
menu.add(group1,2,2,"菜单选项二");
menu.add(group2,3,3,"菜单选项三");
menu.add(group2,4,4,"菜单选项四");
//返回true 则是显示菜单
return true;
}
/**
* 响应菜单的业务逻辑
* @param item 代表选中的菜单的对象
* @return
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case 1:
Toast.makeText(this,item.getTitle(),Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this,item.getTitle(),Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(this,item.getTitle(),Toast.LENGTH_SHORT).show();
break;
case 4:
Toast.makeText(this,item.getTitle(),Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
}
结果是: