android菜单(menu)用法

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

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

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

1.资源文件下的menu文件res/menu/menu.xml ide

<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 this

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中声明。 spa

相关文章
相关标签/搜索