Android(安卓)使用XML自定义菜单
16lz
2021-01-26
在Android里面有两种方式做菜单(Menu)。第一种写在 public boolean onCreateOptionsMenu(Menu menu) 直接写代码,第二种是把菜单放到一个XML文件里面来定义的
使用第一种方式不好的地方就是使Activity文件过大,因而我们采用第二种方式:
还是老规矩,先看效果图:
效果图如上,让我们来看看用代码是怎么来实现的。
第一步:
先在res目录下创建一个menu目录,这个用来专门存放菜单文件。
第二步:
新建一个xml文件,如下:
sys_menu.xml
XML文件就定义完毕了,简单吧。
好了,那我们看看Activity怎么写,
MenuActivity.java
完成这几步就搞定了,大功告成。
使用第一种方式不好的地方就是使Activity文件过大,因而我们采用第二种方式:
还是老规矩,先看效果图:
效果图如上,让我们来看看用代码是怎么来实现的。
第一步:
先在res目录下创建一个menu目录,这个用来专门存放菜单文件。
第二步:
新建一个xml文件,如下:
sys_menu.xml
- <?xml version="1.0" encoding="utf-8"?>
- <menu
- xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:title="设置" android:id="@+id/menu_set" android:icon="@drawable/icon"/><!-- android:icon="@drawable/icon" 可以使用漂亮的图片 -->
- <item android:title="账户管理" android:id="@+id/menu_account" android:icon="@drawable/icon"/>
- <item android:title="更多" android:id="@+id/menu_more" android:icon="@drawable/icon">
- <menu>
- <group>
- <item android:title="Copy" android:id="@+id/edit_copy"/>
- <item android:title="Paste" android:id="@+id/edit_paste"/>
- <item android:title="Cut" android:id="@+id/edit_cut"/>
- <item android:title="Delete" android:id="@+id/edit_delete"/>
- </group>
- </menu>
- </item>
-
-
- <item android:title="更多1" android:id="@+id/menu_more1" android:icon="@drawable/icon">
- <menu>
- <item android:title="Open..." android:id="@+id/file_open"/>
- <item android:title="Save" android:id="@+id/file_save"/>
- <item android:title="Save as" android:id="@+id/file_saveas"/>
- <item android:title="Exit" android:id="@+id/file_exit"/>
- </menu>
- </item>
- </menu>
XML文件就定义完毕了,简单吧。
好了,那我们看看Activity怎么写,
MenuActivity.java
- package com.droidstouch.xmlmenu;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- import android.widget.Toast;
-
- /**
- *
- * @author touchAndroid
- * URL:http://bbs.droidstouch.com
- */
- public class MenuActivity extends Activity {
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
-
-
- /**
- * 重写onCreateOptionsMenu 方法
- */
- public boolean onCreateOptionsMenu(Menu menu)
- {
- //获取MenuInflater对象
- MenuInflater inflater = getMenuInflater();
- // 使用自定义的XML菜单文件
- inflater.inflate(R.menu.sys_menu, menu);
-
- return super.onCreateOptionsMenu(menu);
- }
-
-
- /**
- * 判断所选择的菜单
- */
- public boolean onOptionsItemSelected(MenuItem item)
- {
-
- switch (item.getItemId())
- {
- case R.id.menu_set:
- Toast.makeText(this, "选择了设置菜单", Toast.LENGTH_LONG).show();
- break;
- case R.id.menu_account:
- Toast.makeText(this, "选择了账户管理菜单", Toast.LENGTH_LONG).show();
- break;
- default:
- break;
- }
- return super.onOptionsItemSelected(item);
- }
- }
完成这几步就搞定了,大功告成。
更多相关文章
- Android中,怎么优雅的生成代码?
- android 破解软件
- Android(安卓)里的FrameBuffer
- Android(安卓)eng版系统烧录
- Android之WebView安全
- Android多渠道Ant打包详细
- Android(安卓)NDK 开发教程六: application.mk
- Android(安卓)仿Facebook滑动菜单-支持android 2.2
- Android(安卓)studio 快捷键汇总