新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > android ContextMenu

android ContextMenu

作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

ContextMenu 繼承自 Menu。上下文菜單不同于選項菜單,選項菜單服務于Activity,而上下文菜單是注冊到某個View對象上的。如果一個View對象注冊了上下文菜單,用戶可以通過長按(約2秒) 該View對象上以呼出上下文菜單。

本文引用地址:http://butianyuan.cn/article/201609/305033.htm

上下文菜單不支持快捷鍵(shortcut),其菜單選項也不能附帶圖標,但是可以為上下文菜單的標題指定圖標

下面是一個ContextMenu的小例子,運行效果如下:

androidwbr>ContextMenu
androidwbr>ContextMenu

package xiaohang.zhimeng;

import android.app.Activity;

import android.os.Bundle;

import android.view.ContextMenu;

import android.view.MenuItem;

import android.view.View;

import android.view.ContextMenu.ContextMenuInfo;

import android.widget.EditText;

public class Activity01 extends Activity {

final int MENU1 = 1;

final int MENU2 = 2;

final int MENU3 = 3;

final int MENU4 = 4;

final int MENU5 = 5;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//為兩個文本框注冊上下文菜單

this.registerForContextMenu(findViewById(R.id.EditText01));

this.registerForContextMenu(findViewById(R.id.EditText02));

}

//添加上下文菜單

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

//此方法在每次調(diào)用上下文菜單時都會被調(diào)用一次

menu.setHeaderIcon(R.drawable.car);

if (v==findViewById(R.id.EditText01)) {

menu.add(0, MENU1, 0, R.string.mi1);

menu.add(0, MENU2, 0, R.string.mi2);

menu.add(0, MENU3, 0, R.string.mi3);

}

else if (v==findViewById(R.id.EditText02)) {

menu.add(0, MENU4, 0, R.string.mi4);

menu.add(0, MENU5, 0, R.string.mi5);

}

}

//響應上下文菜單

@Override

public boolean onContextItemSelected(MenuItem item) {

switch (item.getItemId()) {

case MENU1:

case MENU2:

case MENU3:

EditText et1 = (EditText)this.findViewById(R.id.EditText01);

et1.append(n + item.getTitle() + 被按下);

break;

case MENU4:

case MENU5:

EditText et2 = (EditText)this.findViewById(R.id.EditText02);

et2.append(n + item.getTitle() + 被按下);

break;

}

return true;

}

}



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉