您当前的位置:首页 > 技术宅 > 移动端 > 安卓

android菜单(menu)用法

时间:2014-04-03 23:45:59 来源:csdn 作者:Flying_tao  浏览: 我要评论

   Android手机专门用一个按键“menu“来显示菜单。

   要实现菜单功能,首先要通过方法onCreateOptionMenu来创建菜单,创建方法有两种:一种是直接导入有menu的xml文件,一种是用类Menu的方法直接添加。创建好菜单后,用事件监听器onOptionItemSelected对能够触发的事件进行监听。

   下面这个例子有两个Activity,分别有上面的两种方法实现menu,每个menu里都有事件监听器进行Activity跳转和退出。

1.资源文件下的menu文件res/menu/menu.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>

Activity01.java

package com.yarin.android.Examples_04_13;
 
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 Activity01 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 class is used to instantiate menu XML files into Menu objects
        MenuInflater inflater = getMenuInflater();
        //设置menu界面为res/menu/menu.xml
        inflater.inflate(R.menu.menu, 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(Activity01.this, Activity02.class);
                /* 启动一个新的Activity */
                startActivity(intent);
                /* 关闭当前的Activity */
                Activity01.this.finish();
                break;
            case R.id.exit:
                Activity01.this.finish();
                break;
        }
        return true;
    }
}

Activity02.java

package com.yarin.android.Examples_04_13;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
 
public class Activity02 extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        /* 设置显示main2.xml布局 */
        setContentView(R.layout.main2);
    }
 
    /*创建menu*/
    public boolean onCreateOptionsMenu(Menu menu)
    {
        //为menu添加内容
        menu.add(0, 0, 0, R.string.ok);
        menu.add(0, 1, 1, R.string.back);
        return true;
    }
 
    /*处理menu的事件*/
    public boolean onOptionsItemSelected(MenuItem item)
    {
        //得到当前选中的MenuItem的ID,
        int item_id = item.getItemId();
 
        switch (item_id)
        {
            case 0:
            case 1:
                /* 新建一个Intent对象 */
                Intent intent = new Intent();
                /* 指定intent要启动的类 */
                intent.setClass(Activity02.this, Activity01.class);
                /* 启动一个新的Activity */
                startActivity(intent);
                /* 关闭当前的Activity */
                Activity02.this.finish();
                break;
        }
        return true;
    }
}

本例用到了两个Activity,不要忘记在AndroidManifest.xml中声明。

参与评论(条)

注: 网友评论仅供表达个人看法,并不表达本站同意其观点或证实其描述

热门阅读

最新资讯

一周新闻排行

更多热门推荐

头条回顾

更多攻略库