當前位置:首頁 » 安卓系統 » androidoptionmenu

androidoptionmenu

發布時間: 2022-05-23 07:47:56

『壹』 contextmenu和optionmenu的區別

你好,區別如下:
ContextMenu是android的context menu上下文菜單,選擇某項VIEW後長按menu鍵,就會顯示出來。
比如Edit Text就可以通過長按來彈出擁有「cut」,"","paste"等項的ContextMenu。
實現ContextMenu,一般要用到以下三個方法:
(1)registerForContextMenu(getExpandableListView());

(2)onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo);
(3)onContextItemSelected(MenuItem item);

>>ContextMenu和OptionsMenu相比主要有以下區別:
1,ContextMenu必須通過Activity的registerForContextMenu(View)來進行注冊,而OptionsMenu不用。
2,ContextMenu不支持icon,而OptionsMenu支持。
3,ContextMenu可以有頭,可以通過setHeaderIcon,setHeaderTitle,setHeaderView來設置頭,否則就沒有頭。
4,彈出的方式不一樣。
5,Options Menu的擁有者是Activity,而上下文菜單的擁有者是Activity中的View。
每個Activity有且只有一個Options Menu,它為整個Activity服務。
而一個Activity往往有多個View,並不是每個View都有上下文菜單,這就需要我們調用registerForContextMenu(View view)來指定。

注意事項:ContextMenu的任何項在被選中後,整個ContextMenu會自動被系統關閉掉,即使多選項也是這樣。這樣的話,多選項的行為就有些怪異。查看Android的源碼後,發現這是個Android的bug,應該是google沒考慮多選項的情況。

盡管上下文菜單的擁有者是View,生成上下文菜單卻是通過Activity中的onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo)方法,該方法很像生成Options Menu的onCreateOptionsMenu(Menu menu)方法。
兩者的不同在於,onCreateOptionsMenu只在用戶第一次按「Menu」鍵時被調用,
而onCreateContextMenu會在用戶每一次長按View時被調用,而且View必須已經注冊了上下文菜單。
另一個值得注意的就是上圖中的ContextMenuInfo,該類的對象被傳入onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo)方法,那麼它有什麼用呢?有時候,視圖元素需要向上下文菜單傳遞一些信息,比如該View對應DB記錄的ID等,這就要使用ContextMenuInfo。需要傳遞額外信息的View需要重寫getContextMenuInfo()方法,返回一個帶有數據的ContextMenuInfo實現類對象。
介紹了這么多,下面給出一個demo演示如何創建和響應上下文菜單:
1.在activity的onCreate(...)方法中為一個view注冊上下文菜單
2.在onCreateContextMenuInfo(...)中生成上下文菜單。
3.在onContextItemSelected(...)中響應上下文菜單項。

『貳』 android,..onCreateOptionsMenu....選項菜單,屏幕右上角沒有菜單的圖標啊該點擊哪兒

點擊屏幕的 menu鍵,就出來了。
貌似是安卓4.0以後,就這樣了。

『叄』 為什麼我在Android中創建了 OptionMenu菜單為什麼不顯示出來這是什麼原因

在Android中,菜單被分為如下三種,選項菜單(OptionsMenu)、上下文菜單(ContextMenu)和子菜單(SubMenu),如果增加了Menu但是沒有顯示出來,建議你檢查一下代碼,是否重寫了OptionMenu的相關API


關於Menu的幾個重點:

  1. OptionMenu的常用API

public boolean onCreateOptionsMenu(Menu menu):使用此方法調用OptionsMenu。

public boolean onOptionsItemSelected(MenuItem item):選中菜單項後發生的動作。

public void onOptionsMenuClosed(Menu menu):菜單關閉後發生的動作。

public boolean onPrepareOptionsMenu(Menu menu):選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單。

public boolean onMenuOpened(int featureId, Menu menu):單打開後發生的動作。


2.默認樣式

默認樣式是在屏幕底部彈出一個菜單,這個菜單我們就叫他選項菜單OptionsMenu,一般情況下,選項菜單最多顯示2排每排3個菜單項,這些菜單項有文字有圖標,也被稱作Icon Menus,如果多於6項,從第六項開始會被隱藏,在第六項會出現一個More里,點擊More才出現第六項以及以後的菜單項,這些菜單項也被稱作Expanded Menus。下面介紹。


3.為菜單項注冊事件

使用onOptionsItemSelected(MenuItem item)方法為菜單項注冊事件,即重寫Activity的

public boolean onOptionsItemSelected(MenuItem item) {}

當菜單點擊的時候會回調這個方法

『肆』 關於Option Menu的顯示位置,該怎麼處理

關於Option Menu的顯示位置
請問一下如何設置Option Menu的顯示位置(不知為何我按照例子設置,然後顯示的位置是右上角,而且圖片沒有顯示)

------解決方法--------------------
那你的Android版本肯定是API 3.0以上了,默認是在上面。
你可以在Manifest中的Application標簽下加上: android:theme="@android:style/Theme",就回歸到以前的版本了。
顯示在下方,圖片也出來了

『伍』 android中OptionsMenu(包括點擊more展開的部分)字體顏色之類的如何設置

你可以把你想要的字體及顏色做成圖片,然後添加成它icon 的背景圖,這樣也可以實現改變字體顏色的效果! 這樣可以實現吧,因為沒有直接修改的方法吧!如果找到的話,希望你分享下!

『陸』 初學安卓開發,java語言,請問下面這個方法 onCreateOptionsMenu是什麼意思

Android一共有三種形式的菜單:
1.選項菜單(optinosMenu)
2.上下文菜單(ContextMenu)

3.子菜單(subMenu)
其中最常用的就是選項菜單(optionsMenu), 該菜單在點擊 menu 按鍵 後會在對應的Activity底部顯示出來。如果你用過android手機的話,這個感受應該是很明顯的

『柒』 android optionmenu 三個點怎麼出來

你要在menu.xml中的item裡面設置showAsAction="ifRoom"
4.2上版本的optionsMenu是放到actionbar上面了,必須要在xml文件中設置showAsAction="always"或showAsAction="ifRoom"才能在actionbar上顯示。

『捌』 Android怎麼講OptionMenu的Item同時顯示title和icon,但是menu又不顯示在Action Bar上有代碼更好~~

這個貌似是不行的,如果找到了方法,再來完善吧。

『玖』 android繼承activity為什麼要重寫onCreateOptionsMenu,以前的版本是不用重寫的

可以不用管,是adt-20開始有的。這個就是在該界面增加了menu 功能,你在該界面按下menu按鍵,有彈出menu選項框。

『拾』 android開發中怎麼在一個應用程序中設置兩個不同的menu點擊事件

public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.clear();
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option_menu, menu);
if (islogin) {
menu.findItem(R.id.add).setEnabled(false);
menu.findItem(R.id.delete).setEnabled(false);
} else {
menu.findItem(R.id.login).setEnabled(false);
menu.findItem(R.id.logout).setEnabled(false);
}
return true;}
大概是這個樣子,試試吧!

熱點內容
虛擬存儲器尋找輔存 發布:2025-08-22 09:10:40 瀏覽:879
農村醫保金融卡密碼是多少 發布:2025-08-22 08:33:59 瀏覽:662
iphone8手機如何快捷鍵清除緩存 發布:2025-08-22 08:21:57 瀏覽:425
linux編程java 發布:2025-08-22 07:57:40 瀏覽:310
steam刪文件夾 發布:2025-08-22 07:57:38 瀏覽:52
bytec語言 發布:2025-08-22 07:37:34 瀏覽:387
蘋果手機怎麼上傳視頻到qq空間 發布:2025-08-22 07:10:03 瀏覽:638
淘寶androidsdk 發布:2025-08-22 06:52:04 瀏覽:940
編程掙錢嗎 發布:2025-08-22 06:31:21 瀏覽:1003
敬請存儲 發布:2025-08-22 06:25:42 瀏覽:612