菜单设计

网络111 刘修军

Android中的菜单有两种,一种是通过MENU键激活,叫Options Menu;另一种是当用户长按一个元素时激活,叫Context Menu。

  1. Options Menu

       在Activity里面,一般通过以下方法来使用Options Menu:

        (1)onCreateOPtionsMenu(Menu menu) 创建Options Menu,这个方法只会在menu第一次显示时调用。

       (2)onPrepareOptionsMenu(Menu menu) 更新改变Options Menu的内容,这个方法会在menu每次显示时调用。

       (3)onOptionsItemSelected(MenuItem item)处理选中的菜单。 

             Options Menu示例:

             代码:

 

package com.MenuTest;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.EditText;

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);
        t1=(EditText) findViewById(R.id.t1);
    }
    EditText t1;
    @Override
    public boolean onCreateOptionsMenu(Menu menu)//创建Option Menu菜单,只会在Menu第一次显示时调用
    {
        super.onCreateOptionsMenu(menu);
       menu.add(1,1,1,"菜单1");
       menu.add(1,2,2,"菜单2");
       menu.add(1,3,3,"菜单3");
     SubMenu submenu=menu.addSubMenu(1,4,4,"菜单4");//添加子菜单
       submenu.add("子菜单1");
       submenu.add("子菜单2");
       submenu.add("子菜单3");
      
       return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) //处理选中的菜单项;单击某个菜单项时,将菜单Text值赋给EditText
    {
        super.onOptionsItemSelected(item);
        switch(item.getItemId())//获得菜单的ID编号
        {
        case 1: t1.setText("菜单1");break;
        case 2: t1.setText("菜单2");break;
        case 3: t1.setText("菜单3");break;
        case 4: t1.setText("菜单4");break;
        }
        return true;
        
    }
}

 

 

     2. Context Menu

        在Activity里面,一般通过以下方法来使用Context Menu:

        (1) registerForContextMenu(View view) 为某个View 注册Context Menu,一般在Activity的onCreate里面调用。

       (2)onCreateContextMenu(ContextMenu menu,View v,ContextMenu context MenuInfo menuinfo)创建context menu,和 Options Menu不同,context menu每次是显示时都会调用这个方法。

       (3) onContextItemSelected(MenuItem item)处理选中的菜单项。

              Context Menu示例:  

 

 

    代码:

package com.MyContext;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View;
import android.widget.Button;

public class MyContextActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button1=(Button) findViewById(R.id.button1);
        this.registerForContextMenu(button1);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Context Menu");
        menu.add("菜单1");
        menu.add("菜单2");
        menu.add("菜单3");
    }
    
}

 

 

posted @ 2013-04-16 19:43  拼搏的豆子  阅读(210)  评论(0)    收藏  举报