?
結果如下:
第一種編程方式:
package com.easyway.android.menu;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
/**
* Android菜單實現功能
* @author longgangbai
*
*/
public class AndroidMenuActivity extends Activity {
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView=(TextView)findViewById(R.id.txtview);
}
/**
* 創建一個上下文可選菜單
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, Menu.FIRST, Menu.NONE, "編輯");
menu.add(0, Menu.FIRST + 1, Menu.NONE, "保存");
menu.add(0, Menu.FIRST + 2, Menu.NONE, "刪除");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
//獲取菜單項的ID,即前面Menu.add方法的第二個參數
case Menu.FIRST:
textView.setText("編輯");
break;
case Menu.FIRST + 1:
textView.setText("保存");
break;
case Menu.FIRST + 2:
textView.setText("刪除");
break;
default:
break;
}
return true;
}
}
?
?
第二種方式聲明方式:
res/menu/menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="保存" android:id="@+id/ID_SAVE"></item>
<item android:title="編輯" android:id="@+id/ID_EDIT"></item>
<item android:title="刪除" android:id="@+id/ID_DELETE"></item>
</menu>
?
實現為:
package com.easyway.android.mens;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
/**
* Android菜單實現功能
*
* Android程序使用菜單是非常之方便的,而且Android系統的菜單也做得很有特色,系統有專門的Menu鍵,
* 而且菜單的樣式不同于通常的彈出或者下拉菜單,Android的菜單更像是堆砌起來的。
*Menu是android.view包里面的接口,它菜單通常是作為Activity的一部分。
*
*在Android的文檔里面這樣描述Menu:
* 通常,每個Activity都支持(這里意思應該是已經創建好,默認存在菜單)一個選項菜單
* (option menu)和相應的事件響應??梢詾椴藛翁砑硬藛雾椇拖鄳氖录幚?。添加菜單項最簡
* 單的方法是是使用XML文件,在Menu標簽下使用 MenuInflater,然后重載Activity的
* onOptionsItemSelected(MenuItem) 方法或者onContextItemSelected(MenuItem) 方法,
* 在方法體里添加事件處理代碼。
*
* 總的來說,有三種類型的菜單:
* Contex Menus,情境菜單:不支持菜單快捷鍵和圖標。
* Options Menus,選項菜單:支持圖標,但不支持菜單項選中標記。
* Sub menus,子菜單,不支持圖標,不能再有子菜單。
* @author longgangbai
*
*/
public class AndroidXmlMenuActivity extends Activity {
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView=(TextView)findViewById(R.id.txtview);
}
/**
* 創建一個上下文可選菜單
* Menu.add(int groupId, int itemId, int order, CharSequence title)方法,
* 第一個參數用來指定菜單項分組,API文檔說分組可以用來進行分組狀態更新,
* 第二個參數很重要,是菜單項的唯一ID,在后面菜單事件處理時要用到,
* 第三個參數為排序值,用來指定菜單項順序,可以無視,
* 最后一個參數為菜單項的標題,在屏幕上面顯示用。
*
* 另一種方式是使用XML文件和MenuInflater類來創建菜單。Android使用XML作為
* 資源管理的方式,獨立于編碼,具有更高的靈活性和擴展性。在res下面建立menu
* 文件夾,然后新建一個xml文檔,命名為menu.xml。
*
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
//創建獲取菜單的布局的對象
MenuInflater menuInflater=new MenuInflater(this);
//向菜單中添加菜單
menuInflater.inflate(
R.menu.menu, //位于res/memnu下的菜單xml文件配置
menu //需要添加的父菜單對象
);
return true;
}
/**
* 各個菜單的 響應時間的實現
*
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
//獲取菜單項的ID,即前面Menu.add方法的第二個參數
case R.id.ID_EDIT:
textView.setText("編輯");
break;
case R.id.ID_SAVE:
textView.setText("保存");
break;
case R.id.ID_DELETE:
textView.setText("刪除");
break;
default:
break;
}
return true;
}
}
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

