在Android中,我们在使用Activity的时候,一样可以使用menu菜单,menu菜单的使用一般会涉及到重载Activity下的onCreateOptionsMenu和onOptionsItemSelected这两个方法,具体怎么使用,我们看下面的示例。
动作一:
创建MenuTest工程,这是我的工程目录:
动作二:
在res/下新建目录menu,并在menu目录下新建menu.xml,我们在menu.xml文件下定义了我们的菜单项,这边我就先定义两项,“关于”和“退出”。
menu.xml内容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <menu
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/about"
- android:title="关于" />
- <item
- android:id="@+id/exit"
- android:title="退出" />
- </menu>
动作三:
修改MenuTestActivity.java文件,在这里我们使用onCreateOptionsMenu来创建我们menu,并使用onOptionsItemSelected方法来处理菜单事件,完整代码如下:
- package org.ourunix.menutest;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- public class MenuTestActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- // 创建menu
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.menu, menu);
- return true;
- }
- // 处理菜单事件
- public boolean onOptionsItemSelected(MenuItem item) {
- // 得到当前选中的MenuItem的ID
- int itemId = item.getItemId();
- switch (itemId) {
- case R.id.about:
- Intent intent = new Intent("org.ourunix.android.menutest");
- intent.setClass(MenuTestActivity.this, AboutActivity.class);
- startActivity(intent);
- break;
- case R.id.exit:
- MenuTestActivity.this.finish();
- break;
- }
- return true;
- }
- }
动作四:
在处理菜单事件的时候,我们注意到,但当点击菜单中的“关于”项,我们会从当前的Activity跳转到另外一个显示关于信息的Activity,这个Activity名为AboutActivity.java具体代码如下:
- package org.ourunix.menutest;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.TextView;
- public class AboutActivity extends Activity {
- private TextView mTextView;
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- mTextView = new TextView(AboutActivity.this);
- mTextView.setText("这是关于页面!");
- setContentView(mTextView);
- }
- }
动作五:
在AndroidMainfest.xml添加上我们新建的的这个名为AboutActivity的Activity:
- <activity
- android:name=".AboutActivity">
- <intent-filter>
- <action
- android:name="org.ourunix.android.menutest" />
- </intent-filter>
- </activity>
动作六:
运行MenuTest工程效果如下:
点击menu,出现如下菜单:
点击菜单项中的,关于,出于下面页面,点击,退出,则退出程序。
源码:MenuTest