Android学习笔记之MENU

Android学习笔记之MENU

     今天学习如何在Android里进行MENU操作,比较了一下微软和android对菜单操作的区别,总的来说,还是微软那一套比较方便(*^__^*) 嘻嘻……

     好,转入正题。在android要建立自己的菜单,要重载一下父类的onCreateOptionsMenu方法。然后在onCreateOptionsMenu里进行添加菜单的操作。代码如下:

    @Override

    public boolean onCreateOptionsMenu(Menu menu){

     super.onCreateOptionsMenu(menu);

     menu.add(0, ADD_ID, 0, R.string.Menu_Add);

     menu.add(0, DELETE_ID, 1, R.string.Menu_Del);

     menu.add(0, UPDATE_ID, 2, R.string.Menu_Update);

     menu.add(0, EXIT_ID, 3, R.string.Menu_Exit);

     return true;

}

其中ADD_ID、DELETE_ID、UPDATE_ID、EXIT_ID是每个菜单项的Id,定义如下:

    public static final int ADD_ID    = Menu.FIRST;

public static final int DELETE_ID = Menu.FIRST + 1;

public static final int EXIT_ID   = Menu.FIRST + 2;

public static final int UPDATE_ID = Menu.FIRST + 3;

然后在资源文件里添加要显示在菜单上的文本,打开string.xml添加如下代码:

    <string name="Menu_Add">Add Item</string>

    <string name="Menu_Del">Delete Item</string>

    <string name="Menu_Update">Update Item</string>

    <string name="Menu_Exit">Exit</string>

一个简单的菜单就做好了,简单吧。建立好菜单后,下一步就是为菜单添加相应事件了。这个也是重载父类的onOptionsItemSelected方法,代码如下:

    @Override

    public boolean onOptionsItemSelected(MenuItem item){

     switch(item.getItemId()){

     case ADD_ID:  setTitle("Insert...");break;

     case DELETE_ID: setTitle("Delete...");break;

     case EXIT_ID: setTitle("Exit...");break;

     case UPDATE_ID: setTitle("Update...");break;

     default:break;

     }

     return true;

    }

这样一个基本的菜单就实现了,(*^__^*) 嘻嘻……,简单吧。下回继续。(附本例所有代码)

ex01.java

package oms.ex01;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

public class ex01 extends Activity {

    /** Called when the activity is first created. */

public static final int ADD_ID    = Menu.FIRST;

public static final int DELETE_ID = Menu.FIRST + 1;

public static final int EXIT_ID   = Menu.FIRST + 2;

public static final int UPDATE_ID = Menu.FIRST + 3;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

    }

    

    @Override

    public boolean onCreateOptionsMenu(Menu menu){

     super.onCreateOptionsMenu(menu);

     menu.add(0, ADD_ID, 0, R.string.Menu_Add);

     menu.add(0, DELETE_ID, 1, R.string.Menu_Del);

     menu.add(0, UPDATE_ID, 2, R.string.Menu_Update);

     menu.add(0, EXIT_ID, 3, R.string.Menu_Exit);

     return true;

    }

    @Override

    public boolean onOptionsItemSelected(MenuItem item){

     switch(item.getItemId()){

     case ADD_ID:  setTitle("Insert...");break;

     case DELETE_ID: setTitle("Delete...");break;

     case EXIT_ID: setTitle("Exit...");break;

     case UPDATE_ID: setTitle("Update...");break;

     default:break;

     }

     return true;

   }

}
string.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="hello">Hello World, ex01!</string>

    <string name="app_name">ex01</string>

    <string name="Menu_Add">Add Item</string>

    <string name="Menu_Del">Delete Item</string>

    <string name="Menu_Update">Update Item</string>

    <string name="Menu_Exit">Exit</string>

</resources>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值