日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

使用xml布局菜单

發(fā)布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用xml布局菜单 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
??目前為止我們都是通過硬編碼來增加菜單項的,android為此提供了一種更便利的方式,就是把menu也定義為應(yīng)用程序的資源,通過android對資源的本地支持,使我們可以更方便地實現(xiàn)菜單的創(chuàng)建與響應(yīng)。這一篇就介紹如何使用XML文件來加載和響應(yīng)菜單,我們需要做這幾步:? 一般我們都是通過硬編碼來增加菜單項的,例如我們之前介紹的。google為此提供了一種更便利的方式,就是
  1. 在/res目錄下創(chuàng)建menu文件夾
  2. 在menu目錄下使用與menu相關(guān)的元素定義xml文件,文件名任意,android會自動為其生成資源ID。例如:R.menu.itemmenu對應(yīng)menu目錄的itemmenu.xml資源文件
  3. 使用xml文件的資源ID,將xml文件中定義的菜單項添加到menu對象中去
  4. 響應(yīng)菜單項時,使用每個菜單項對應(yīng)的資源ID

(一)定義資源文件

??在res目錄下創(chuàng)建menu文件夾,在menu下創(chuàng)建一個xml資源文件,我這里叫做main_menu.xml


編寫main_menu.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<menu
? xmlns:android="http://schemas.android.com/apk/res/android">
? <!-- group1 -->
? <group android:id="@+id/group1">
? ? ? <item android:id="@+id/mi1"
? ? ? ? ? android:title="item1"/>
? ? ? <item android:id="@+id/mi2"
? ? ? ? ? android:title="item2"/>
? </group>
? <!-- group 2 -->
? <group android:id="@+id/group2">
? ? ? <item android:id="@+id/mi3"
? ? ? ? ? android:title="item3"/>
? ? ? <item android:id="@+id/mi4"
? ? ? ? ? android:title="item4"/>
? </group>
</menu>

這里簡單的添加了4個菜單項,并將其分為2組。item元素的android:title值可以引用values中的string資源。

(二)使用MenuInflater添加菜單項

?MenuInflater在android中建立了從資源文件到對象的橋梁,MenuInflater即把菜單xml資源轉(zhuǎn)換為對象并添加到menu對象中,它可以通過activity的getMenuInflater()得到。我們在MainActivity中重寫onCreateOptionsMenu(...)方法。

@Override
publicboolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater
= getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
returntrue;
}
(三)響應(yīng)菜單

最后重寫onOptionsItemSeleted(...)方法。

@Override
publicboolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.mi1:
// do sth
break;
case R.id.mi2:
// do sth
break;
case R.id.mi3:
// do sth
break;
case R.id.mi4:
// do sth
break;
}
return true;
}

這一步最大的體現(xiàn)了使用XML生成菜單的好處。android不僅為我們定義的xml文件生成了資源ID,同樣可以為group,menu item來自動生成ID(就像為布局中定義的view生成id那樣)。


? 至此,我們完成了一個簡單的“使用XML生成菜單”的demo,并從中體會到了使用資源文件的好處,因此這是android中創(chuàng)建菜單的推薦方式。實際上,我們在代碼中對菜單項或分組的操作都能在xml文件中完成,下面就簡單介紹一些比較常用的功能。

(五)更多菜單資源的功能

1.資源文件實現(xiàn)子菜單

子菜單通過在item元素中嵌套menu來實現(xiàn)。

<item android:title="系統(tǒng)設(shè)置">
<menu>
<item android:id="@+id/mi_display_setting"
android:title
="顯示設(shè)置"/>
<item android:id="@+id/mi_network_setting"
android:title
="網(wǎng)絡(luò)設(shè)置"/>
<!-- 別的菜單項 -->
</menu>
</item>
2.為菜單項添加圖標(biāo)

<item android:id="@+id/mi_exit"
android:title
="退出"
android:icon
="@drawable/exit"/>

3.設(shè)置菜單項的可選出現(xiàn)

使用android:checkableBehavior設(shè)置一組菜單項的可選策略,可選值為:none, all, single

<group android:id="..."
android:checkableBehavior
="all">
<!-- 菜單項 -->
</group>
使用android:checked設(shè)置特定菜單項

<item android:id="..."
android:title
="sometitle"
android:checked
="true"/>
4.設(shè)置菜單項可用/不可用

<item android:id="..."
android:title
="sometitle"
android:enabled
="false"/>

5.設(shè)置菜單項可見/不可見

<item android:id="..."
android:title
="sometitle"
android:visible
="false"/>

轉(zhuǎn)載于:https://www.cnblogs.com/android-html5/archive/2012/06/03/2533918.html

總結(jié)

以上是生活随笔為你收集整理的使用xml布局菜单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。