大家還記得Spinner的效果嗎释移。ContextMenu的效果很像我們Spinner的dialog使用效果氮兵,彈出一個(gè)框體训裆,然后有很多的list。今天我們來(lái)看一下ContextMenu的使用豺谈,contextMenu分為靜態(tài)使用和動(dòng)態(tài)使用。
一贡这、contextMenu靜態(tài)使用(通過(guò).xml文件添加數(shù)據(jù))
1我們首先在res目錄下創(chuàng)建menu文件夾茬末。
2.之后再menu文件夾里面創(chuàng)建.xml文件(名字我起為context_menu),
3.在context_menu中創(chuàng)建item藕坯,賦予id和title团南。
4.在activity中重寫(xiě)onCreateContextMenu方法和onContextItemSelected
關(guān)于靜態(tài)的contextMenu就配置完了噪沙,然后我們需要通過(guò)一個(gè)按鈕來(lái)啟動(dòng)它。
很簡(jiǎn)兩行行代碼搞定正歼。
大家只需要在意那個(gè)按鍵就好,其他的是我自己寫(xiě)的代碼拷橘,跟這個(gè)沒(méi)什么關(guān)系局义。
二、contextMenu動(dòng)態(tài)使用(通過(guò)java代碼實(shí)現(xiàn))
如果說(shuō)我們想要不斷地添加menu數(shù)據(jù)冗疮,或者想要讓不同的item實(shí)現(xiàn)不同的menu效果萄唇,我們首選的最好還是動(dòng)態(tài)實(shí)現(xiàn)(用java代碼,而不是用.xml文件)术幔。
這回我們可以考慮借助listView一下另萤。
1.activity.xml文件中創(chuàng)建listview標(biāo)簽,賦予id ?mLv(你們隨意)诅挑。
2.在activity.java文件中添加listView控件名字為mLv四敞。
3.給mLv設(shè)置contextMenu的監(jiān)聽(tīng)器(registerForContextMenu(mLv);)
4.給靜態(tài)一樣,重寫(xiě)onCreateContextMenu和onContextItemSelected兩個(gè)方法拔妥,但是寫(xiě)的代碼不太一樣了忿危。
第一行代碼,我們首先獲取到我們mLv的適配器没龙。
第二行代碼铺厨,我們給我們創(chuàng)建的menu一個(gè)標(biāo)題,我們用mLv當(dāng)前item的名字作為他的標(biāo)題硬纤。
第三行代碼解滓,我們給menu的標(biāo)題旁邊添加一張圖片。
剩下的都是給我們的menu添加item
第一個(gè)參數(shù)是組的id咬摇,我們不用去關(guān)伐蒂;第二個(gè)是item的id,這個(gè)就是我們經(jīng)常寫(xiě)的id的那個(gè)值肛鹏,不能有重復(fù)逸邦;第三個(gè)參數(shù)是條目編號(hào),誰(shuí)最大誰(shuí)顯示在前面在扰;第三個(gè)就是我們title的內(nèi)容缕减。
我們的onContextItemSelected方法還是跟之前一樣,只是我們要改成我們剛寫(xiě)的menu的id判斷芒珠。
然后我們來(lái)看一下效果圖