知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
第二章吸引你的眼球—UI編程(8)
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):42
2.4 Menu鍵的┞焚喚—Menu菜單
應(yīng)用Android手機(jī)的同伙應(yīng)當(dāng)敵手機(jī)的“Menu”鍵都不陌生吧。它應(yīng)用起來(lái)便利、快捷,不須要占用應(yīng)用的界面,正因?yàn)樗末路庑┨攸c(diǎn),我們?nèi)缃裼泻芏嗟膽?yīng)用都應(yīng)用了Menu-菜單鍵。
Menu菜蕩竽暌剮好幾種類(lèi)型,它們各有各的┞飯現(xiàn)情勢(shì),分別應(yīng)用在不合的場(chǎng)合,以下我們一一對(duì)它們進(jìn)話(huà)舊紹。
1)通俗的Menu(選項(xiàng)菜單)
這是我們?nèi)粘F椒矐?yīng)用最多、也是最常見(jiàn)的菜單,它就是當(dāng)用戶(hù)單擊設(shè)畢喔贍菜單按鍵時(shí)彈出的菜單。它最多只能顯示6個(gè),跨越6個(gè)則第六個(gè)主動(dòng)顯示“更多”選項(xiàng)來(lái)展開(kāi)顯示。它的創(chuàng)建也很簡(jiǎn)單,在Activity中覆蓋onCreateOptionsMenu(Menu menu)辦法。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 1, "添加");
menu.add(0, 2, 2, "刪除");
return super.onCreateOptionsMenu(menu);
}
在Menu的add辦法中有四個(gè)參數(shù):
第一個(gè)int類(lèi)型的group ID參數(shù),代表的是組概念,你可以將幾個(gè)菜單項(xiàng)歸為一組,以便更好的以組的方法治理你的菜單按鈕。
第二個(gè)int類(lèi)型的item ID參數(shù),代表的是項(xiàng)目編號(hào)。這個(gè)參數(shù)異常重要,一個(gè)item ID對(duì)應(yīng)一個(gè)menu中的選項(xiàng)。在后面應(yīng)用菜單的時(shí)刻,就靠這個(gè)item ID來(lái)斷定你應(yīng)用的是哪個(gè)選項(xiàng)。
第三個(gè)int類(lèi)型的order ID參數(shù),代表的是菜單項(xiàng)的顯示次序。默認(rèn)是0,表示菜單的顯示次序就是按照add的顯示次序來(lái)顯示。
第四個(gè)String類(lèi)型的title參數(shù),表示選項(xiàng)中顯示的文字。
按下Menu鍵后效不雅如圖2-24所示:
[img]http://img.blog.csdn.net/20150104093228723
圖2-24 通俗Menu的應(yīng)用
當(dāng)然,我們也可以給每一個(gè)菜單項(xiàng)設(shè)置零丁的擱筆:
menu.add(0, 1, 1, "添加").setIcon(R.drawable.add_no);
menu.add(0, 2, 2, "刪除").setIcon(R.drawable.reduce_no);
效不雅如圖2-25所示:
[img]http://img.blog.csdn.net/20150104093241952
圖2-25 Menu添加擱筆
如許就有了“添加”和“刪除”兩個(gè)菜單選項(xiàng)。如不雅要添加點(diǎn)擊事宜,則要覆蓋onOptionsItemSelected(MenuItem item)辦法。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == 1){
Toast t = Toast.makeText(this, "鈉揭捉的是添加菜單", Toast.LENGTH_SHORT);
t.show();
} else if(item.getItemId() == 2){
Toast t = Toast.makeText(this, "鈉揭捉的是刪除菜單", Toast.LENGTH_SHORT);
t.show();
}
return true;
}
2)SubMenu(子菜單)
如不雅剛才介紹的Menu為第一級(jí)按鈕的話(huà),SubMenu就是第二級(jí)按鈕,它是將雷同功能的分組進(jìn)行多級(jí)顯示的菜單。
SubMenu的應(yīng)用也同樣簡(jiǎn)單,在第一段代碼onCreateOptionsMenu(Menu menu)辦法中參加幾句,成下面如許:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 1, "添加");
menu.add(0, 2, 2, "刪除");
SubMenu subMenu = menu.addSubMenu(0, 3, 3, "修改");
subMenu.add(1, 4, 1, "用戶(hù)名修改");
subMenu.add(1, 5, 2, "暗碼修改");
return true;
}
點(diǎn)擊“修改”后就會(huì)出現(xiàn)子菜單,有兩個(gè)子選項(xiàng),分別是“用戶(hù)名修改”和“暗碼修改”,效不雅如圖2-26所示:
[img]http://img.blog.csdn.net/20150104093255976
圖2-26 子菜單的應(yīng)用
3)Context Menu(高低文菜單)
Context Menu類(lèi)似于電腦上的右鍵,長(zhǎng)按某個(gè)View之后彈出來(lái)的菜單。我們也來(lái)舉個(gè)簡(jiǎn)單的例子加以解釋。
起首在構(gòu)造文件中定義一個(gè)按鈕:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/test"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的按鈕"/>
</RelativeLayout>
然后我們?cè)谠揂ctivity的onCreate辦法里對(duì)這兩個(gè)按鈕進(jìn)行注冊(cè),代碼如下:
private Button myButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button) findViewById(R.id. my_button1);
registerForContextMenu(myButton);
}
注冊(cè)好了之后,我們就可以覆蓋onCreateContextMenu辦法,在這辦法中實(shí)現(xiàn)b1和b2兩個(gè)按鈕的長(zhǎng)按事宜,代碼如下:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
if(v== myButton){
Toast.makeText(DialogActivity.this, "長(zhǎng)按事宜", Toast.LENGTH_SHORT).show();
}
super.onCreateContextMenu(menu, v, menuInfo); }
我們長(zhǎng)按按鈕來(lái)看看效不雅,如圖2-27所示:
[img]http://img.blog.csdn.net/20150104093311826?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXJ1aTMxOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
圖2-27 高低文菜單的應(yīng)用
我們應(yīng)用的重要就是以上三種菜單,它們各有各的特點(diǎn),應(yīng)用在不合的場(chǎng)合。
其實(shí)很多時(shí)刻,我們比不是經(jīng)由過(guò)程“硬編碼”來(lái)創(chuàng)建菜單的,而是采取xml文件的方法。這種方法可以使代碼和文件分別開(kāi)來(lái),使代碼全部看上去加倍的清楚。創(chuàng)建起來(lái)也相當(dāng)?shù)谋憷⒖旖?。下面我們也舉一個(gè)簡(jiǎn)單的例子加以解釋。
起重要在res/目次下建一個(gè)文件夾,名為menu,接著在該文件夾下建一個(gè)名為menu_xml_file.xml的xml文件,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/grout_main">
<item android:id="@+id/menu_1"
android:title="Menu1"/>
<item android:id="@+id/menu_2"
android:title=" Menu2" />
</group>
</menu>
在Activity中覆蓋onCreateOptionsMenu(Menu menu)辦法,代碼如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_xml_file, menu);
return true;
}
如許Menu菜單就創(chuàng)建好了,效不雅如圖2-28所示:
[img]http://img.blog.csdn.net/20150104093341171
圖2-28 xml文件創(chuàng)建菜單
和之前一樣,我們也可以經(jīng)由過(guò)程ID監(jiān)聽(tīng)它們的點(diǎn)擊事宜。
相關(guān)案例查看更多
相關(guān)閱讀
- 云南網(wǎng)站建設(shè)特性
- 網(wǎng)站建設(shè)選
- 高端網(wǎng)站建設(shè)公司
- 云南手機(jī)網(wǎng)站建設(shè)
- 云南網(wǎng)站優(yōu)化公司
- 云南網(wǎng)站制作哪家好
- 云南網(wǎng)站建設(shè)方案 doc
- 搜索排名
- 云南軟件開(kāi)發(fā)
- 江蘇小程序開(kāi)發(fā)
- 人口普查小程序
- 軟件開(kāi)發(fā)
- 昆明小程序開(kāi)發(fā)聯(lián)系方式
- 報(bào)廢車(chē)拆解回收管理系統(tǒng)
- 云南網(wǎng)站建設(shè)靠譜公司
- 網(wǎng)站沒(méi)排名
- 云南建設(shè)廳官方網(wǎng)站
- 百度人工排名
- 網(wǎng)站建設(shè)開(kāi)發(fā)
- 智慧農(nóng)貿(mào)市場(chǎng)
- 汽車(chē)報(bào)廢管理
- 支付寶小程序被騙
- 云南小程序開(kāi)發(fā)公司哪家好
- web服務(wù)
- 云南etc小程序
- 云南網(wǎng)站建設(shè)價(jià)格
- 云南微信小程序開(kāi)發(fā)
- 河南小程序制作
- 專(zhuān)業(yè)網(wǎng)站建設(shè)公司
- 云南省住房建設(shè)廳網(wǎng)站