一、菜单分为两种,一种是OptionMenu,即选项菜单。一种是ContextMenu,即长按不放。今天先介绍选项菜单的创建。选项菜单的创建有两种方式。第一种方式是通过xml布局来实现。
要实现的菜单功能如下
首先新建一个项目,在res文件夹中建立menu文件夹,在menu文件夹中的main.xml中创建所需菜单。其中main.xml中的代码如下
<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>
然后在string.xml中定义菜单“关于”和“退出”,实现代码如下
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">menu1</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="title_activity_second">SecondActivity</string>
<string name="about">关于</string>
<string name="exit">退出</string>
</resources>
下面在代码中装载这个定义了菜单的XMl布局文件,具体实现如下
package com.example.menu1;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
// MenuInflater inflater=getMenuInflater();
// 设置menu界面为res/menu//menu.xml
getMenuInflater().inflate(R.menu.main, menu);
// 或者inflater.inflater(R.menu.main,menu);
return true;
}
// 处理菜单事件
public boolean onOptionsItemSelected(MenuItem item) {
// 得到当前选中的MenuItem的Id
int item_id = item.getItemId();
switch (item_id) {
case R.id.about:
// 创建一个Intent对象
Intent intent = new Intent();
// 指定Intent要启动的类
intent.setClass(MainActivity.this, SecondActivity.class);
// 启动一个新的Activity
startActivity(intent);
// 关闭当前的Activity
MainActivity.this.finish();
break;
case R.id.exit:
MainActivity.this.finish();
break;
default:
break;
}
return true;
}
}
总结一下,通过xml布局文件来实现选项菜单的步骤可总结如下
(1)定义菜单源,在main.xml文件中将所需菜单项创建好。
(2)通过重写哦你C热点特OptionsMenu(Menu menu)来创建菜单,对象要能够触发的事件进行监听。
(3)重写OptionsItemSelected(MenuItem item)根据不同的选项菜单执行不同的功能。