关于Android这里有两种实现方式,第一种是在资源文件中的menu文件中添加菜单项,第二种直接用Java代码实现。
第一种方式:
res/menu/main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/item01"
android:title="添加"
android:icon="@android:drawable/ic_menu_add" />
<item
android:id="@+id/item02"
android:title="保存"
android:icon="@android:drawable/ic_menu_save" />
<item
android:id="@+id/item03"
android:title="编辑"
android:icon="@android:drawable/ic_menu_edit" />
<item
android:id="@+id/item04"
android:title="详情"
android:icon="@android:drawable/ic_menu_info_details" />
<item
android:id="@+id/item05"
android:title="删除"
android:icon="@android:drawable/ic_menu_delete" />
<item
android:id="@+id/item06"
android:title="发送"
android:icon="@android:drawable/ic_menu_send" />
<item
android:id="@+id/item07"
android:title="帮助"
android:icon="@android:drawable/ic_menu_help" />
</menu>
MainActivity.java
package com.example.mymenudemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Menu.FIRST+1:
Toast.makeText(this, "您选择的是“删除菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST+2:
Toast.makeText(this, "您选择的是“保存菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST+3:
Toast.makeText(this, "您选择的是“帮助菜单”项", Toast.LENGTH_SHORT).show();
break;
case Menu.FIRST + 4:
Toast.makeText(this, "您选择的是“添加菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 5:
Toast.makeText(this, "您选择的是“详情菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 6:
Toast.makeText(this, "您选择的是“发送菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 7:
Toast.makeText(this, "您选择的是“编辑菜单”项", Toast.LENGTH_LONG).show();
break;
default:
break;
}
return true;
}
/**
* 菜单关闭时
*/
@Override
public void onOptionsMenuClosed(Menu menu) {
Toast.makeText(this,
"选项菜单关闭了",
Toast.LENGTH_LONG).show();
}
/**
* 菜单显示前
*/
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
Toast.makeText(this,
"在菜单显示(onCreateOptionsMenu()方法之前会调用此操作,可以在此操作之中完成一些预处理功能。)",
Toast.LENGTH_LONG).show();
return true;
}
}
运行结果:
第二种方式:MainAcitvity.java文件
package com.example.menudemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* 创建选项源(菜单项)传入一个Menu对象
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.NONE,Menu.FIRST+1,1,"删除").setIcon(
android.R.drawable.ic_menu_delete);
menu.add(Menu.NONE,Menu.FIRST+2,2,"保存").setIcon(
android.R.drawable.ic_menu_save);
menu.add(Menu.NONE, Menu.FIRST+3, 3, "帮助").setIcon(
android.R.drawable.ic_menu_help);
menu.add(Menu.NONE, Menu.FIRST+4, 4, "添加").setIcon(
android.R.drawable.ic_menu_add);
menu.add(Menu.NONE, Menu.FIRST+5,5, "详情").setIcon(
android.R.drawable.ic_menu_info_details);
menu.add(Menu.NONE, Menu.FIRST+6, 6, "发送").setIcon(
android.R.drawable.ic_menu_send);
menu.add(Menu.NONE, Menu.FIRST+7, 7, "编辑").setIcon(
android.R.drawable.ic_menu_edit);
return true;
}
/**
* 判断菜单项的操作
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Menu.FIRST+1:
Toast.makeText(this, "您选择的是“删除菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST+2:
Toast.makeText(this, "您选择的是“保存菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST+3:
Toast.makeText(this, "您选择的是“帮助菜单”项", Toast.LENGTH_SHORT).show();
break;
case Menu.FIRST + 4:
Toast.makeText(this, "您选择的是“添加菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 5:
Toast.makeText(this, "您选择的是“详情菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 6:
Toast.makeText(this, "您选择的是“发送菜单”项", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 7:
Toast.makeText(this, "您选择的是“编辑菜单”项", Toast.LENGTH_LONG).show();
break;
default:
break;
}
return true;
}
/**
* 菜单关闭时
*/
@Override
public void onOptionsMenuClosed(Menu menu) {
Toast.makeText(this, "选项菜单关闭了", Toast.LENGTH_LONG).show();
super.onOptionsMenuClosed(menu);
}
/**
* 菜单显示前
*/
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
Toast.makeText(this,
"在菜单显示(onCreateOptionsMenu()方法之前会调用此操作,可以在此操作之中完成一些预处理功能。)",
Toast.LENGTH_LONG).show();
return true;
}
}