Android中menu的基本用法
menu在android中是一个应用中较常用的一个功能点,且android出来的时候menu就出来了, 那么为什么笔者还要再写一篇关于menu的博客呢?
笔者发现,很多初学android的程序员,menu是个非常熟悉但又陌生的控件。 (因为menu几乎没有老师会讲......
此导致了很多程序员不会使用menu,还有人问我menu的配置文件也已经设置好了,为什么单击了menu功能键没有显示的问题。
这次笔者讲解一个关于配置文件使用的menu还有如何把menu给显示出来。。。
最终效果图
可以看出这就是一个非常简单的把menu给显示出来并且监听一下每个item选择后的功能!
整体的操作过程:
1、定义menu需要的xml文件
2、实现该menu对应的activity的onCreateOptionsMenu和onOptionsItemsSelected方法
3、部署运行。。。
可以看出非常的简单。
下图为项目结构:
1、定义menu需要的xml文件
先把代码贴出来
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_linearlayout"
android:orderInCategory="100"
android:title="action_linearlayout"
app:showAsAction="never" />
<item
android:id="@+id/action_gridlayout"
android:orderInCategory="100"
android:title="action_gridlayout"
app:showAsAction="never" />
<item
android:id="@+id/action_hor_gridlayout"
android:orderInCategory="100"
android:title="action_hor_gridlayout"
app:showAsAction="never" />
<item
android:id="@+id/action_waterfall_gridlayout"
android:orderInCategory="100"
android:title="action_waterfall_gridlayout"
app:showAsAction="never" />
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
</menu>
每一个Item都是对应的一个menu效果的item标签,在item中,应该要实现的属性:
id::在 onOptionsitemsSelected方法中,可以根据不同的item进行不同的功能实现
title:在效果图中显示item的名称。
其他的属性就随你便了。。。
2、实现onCreateOptionsMenu方法
现在就要把你定义的menu给显示在屏幕上,这一步初学者可认真看下
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
第一行代码表示显示指定的xml布局文件。 跟你的activity一样。
返回结果代表是否显示在你的window上。
3、实现onOptionsItemsSelected方法。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.action_linearlayout:
<span style="white-space:pre"> </span>// 此处放置功能代码
break;
case R.id.action_gridlayout:
<pre name="code" class="java"><span> </span>// 此处放置功能代码
break; case R.id.action_hor_gridlayout:
<span> </span>// 此处放置功能代码
break; case R.id.action_waterfall_gridlayout:
<span> </span>// 此处放置功能代码
break; default: break; } return super.onOptionsItemSelected(item); }
整体的menu操作流程就搞定了。 本篇博客主要就是让你们定义的menu显示在界面上!!!(望初学android者特记。。