展会信息港展会大全

android中使用xml布局菜单
来源:互联网   发布日期:2016-01-26 10:19:57   浏览:2029次  

导读:目前为止我们都是通过硬编码来增加菜单项的,android为此提供了一种更便利的方式,就是把menu也定义为应用程序的资源,通过android对 资源的本地支持,使我们可以更方便地实现菜单的创建与响应。这一篇就介绍如 ...

目前为止我们都是通过硬编码来增加菜单项的,android为此提供了一种更便利的方式,就是把menu也定义为应用程序的资源,通过android对 资源的本地支持,使我们可以更方便地实现菜单的创建与响应。这一篇就介绍如何使用XML文件来加载和响应菜单,我们需要做这几步: 一般我们都是通过硬编码来增加菜单项的,例如我们之前介绍的。google为此提供了一种更便利的方式,就是

在/res目录下创建menu文件夹

在menu目录下使用与menu相关的元素定义xml文件,文件名任意,android会自动为其生成资源ID。例如:R.menu.itemmenu对 应menu目录的itemmenu.xml资源文件

使用xml文件的资源ID,将xml文件中定义的菜单项添加到menu对象中去

响应菜单项时,使用每个菜单项对应的资源ID

(一)定义资源文件

在res目录下创建menu文件夹,在menu下创建一个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添加菜单项

MenuInflate在android中建立了从资源文件到对象的桥梁,MenuInflater即把菜单xml资源转换为对象并添加到menu 对象中,它可以通过activity的getMenuInflater()得到。我们在MainActivity中重写 onCreateOptionsMenu(...)方法。

@Override

publicboolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.mainmenu, menu);

returntrue;

}

(三)响应菜单

最后重写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;

}

returntrue;

}

这一步最大的体现了使用XML生成菜单的好处。android不仅为我们定义的xml文件生成了资源ID,同样可以为group,menu item来自动生成ID(就像为布局中定义的view生成id那样)。

此,我们完成了一个简单的 使用XML生成菜单 的demo,并从中体会到了使用资源文件的好处,因此这是android中创建菜单的推荐方式。实际上, 我们在代码中对菜单项或分组的操作都能在xml文件中完成,下面就简单介绍一些比较常用的功能。

(五)更多菜单资源的功能

1.资源文件实现子菜单

子菜单通过在item元素中嵌套menu来实现。

<item android:title="系统设置">

<menu>

<item android:id="@+id/mi_display_setting"

android:title="显示设置"/>

<item android:id="@+id/mi_network_setting"

android:title="网络设置"/>

<!-- 别的菜单项 -->

</menu>

</item>

2.为菜单项添加图标

<item android:id="@+id/mi_exit"

android:title="退出"

android:icon="@drawable/exit"/>

3.设置菜单项的可选出现

使用android:checkableBehavior设置一组菜单项的可选策略,可选值为:none, all, single

<group android:id="..."

android:checkableBehavior="all">

<!-- 菜单项 -->

</group>

使用android:checked设置特定菜单项

<item android:id="..."

android:title="sometitle"

android:checked="true"/>

4.设置菜单项可用/不可用

<item android:id="..."

android:title="sometitle"

android:enabled="false"/>

5.设置菜单项可见/不可见

<item android:id="..."

android:title="sometitle"

android:visible="false"/>

赞助本站

人工智能实验室

相关热词: xml 布局 菜单 android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港