關於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;
}
}