android UI menu code

目前还没有整理,只是把代码弄上来。

package com.mediatek.uidemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MenuActivity extends Activity {

 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  this.setContentView(R.layout.menu);
  Button menuButton1 = (Button) findViewById(R.id.contextMenuButton1);
  this.registerForContextMenu(menuButton1);
  Button menuButton2 = (Button) findViewById(R.id.contextMenuButton2);
  this.registerForContextMenu(menuButton2);
  
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // TODO Auto-generated method stub
  
  menu.add(1, 1, 1, "111first").setOnMenuItemClickListener(new MenuItemClickListener());
  menu.add(1, 2, 2, "122second");
  menu.add(1, 3, 3, "211third");
  menu.add(1, 4, 4, "311forth");
  SubMenu subMenu = menu.addSubMenu(2, 1, 1, "桃子" );
  subMenu.add(2, 101, 103, "大桃子");
  subMenu.add(2, 102, 102, "小桃子").setOnMenuItemClickListener(new MenuItemClickListener());
  
  return super.onCreateOptionsMenu(menu);
 }

 public class MenuItemClickListener implements MenuItem.OnMenuItemClickListener {

  @Override           
  public boolean onMenuItemClick(MenuItem item) {    
   Toast.makeText(MenuActivity.this, item.getTitle()+ " is selected", Toast.LENGTH_SHORT).show();
   
   return true; //true表示完成当前item的click处理,不再传递到父类处理                }   
  }
 }
 @Override
 public void onCreateContextMenu(ContextMenu menu, View v,
   ContextMenuInfo menuInfo) {
  // TODO Auto-generated method stub
   if (v.getId() == R.id.contextMenuButton1) {
    menu.setHeaderTitle("button1 menu");
    menu.add(300, 300, 300, "context menu1").setOnMenuItemClickListener(new MenuItemClickListener());
    menu.add(300, 301, 301, "context menu2").setOnMenuItemClickListener(new MenuItemClickListener());
    SubMenu subMenu = menu.addSubMenu(2, 1, 1, "桃子" );
    subMenu.add(2, 101, 103, "大桃子").setOnMenuItemClickListener(new MenuItemClickListener());
    subMenu.add(2, 102, 102, "小桃子").setOnMenuItemClickListener(new MenuItemClickListener());
   } else {
    menu.setHeaderTitle("button2 menu");
    menu.add(301, 300, 300, "context menu21").setOnMenuItemClickListener(new MenuItemClickListener());
    menu.add(301, 301, 301, "context menu22").setOnMenuItemClickListener(new MenuItemClickListener());
   }
  super.onCreateContextMenu(menu, v, menuInfo);
 }

 @Override
 public boolean onMenuItemSelected(int featureId, MenuItem item) {
  // TODO Auto-generated method stub
  TextView tv = (TextView) findViewById(R.id.menuTextView2);
  
  switch(item.getItemId()) {
  case 4:
   Toast.makeText(MenuActivity.this, item.getTitle()+ " is selected,item id is 4!", Toast.LENGTH_LONG).show();
   break;
  case 400:
   tv.setText("another UI");
   break;
  case 401:
   tv.setText("Menu UI");
   break;
  default:
   Toast.makeText(MenuActivity.this, item.getTitle()+ " is selected,item id is not 4!!", Toast.LENGTH_LONG).show();
   break;
  }
  return super.onMenuItemSelected(featureId, item);
 }

 @Override   
 public boolean onPrepareOptionsMenu(Menu menu) {  
  // TODO Auto-generated method stub      
  TextView tv = (TextView) findViewById(R.id.menuTextView2);
  String currentText = tv.getText().toString();    
  if("Menu UI".equals(currentText)){       
   menu.clear();//先清掉菜单    
   
   MenuItem item = menu.add(0, 400, 401, "to another UI");
   //可以通过点击这个菜单项来改变tv1的值这样(变成N)就可以测试了      
   item.setIcon(android.R.drawable.alert_dark_frame);//android自带的图标     
   }      
  if("another UI".equals(currentText)){   
   menu.clear();//先清掉菜单       
   MenuItem item = menu.add(0, 401, 402, "to Menu UI");
   //可以通过点击这个菜单项来改变tv1的值这样(变成M)就可以测试了     
   item.setIcon(android.R.drawable.alert_light_frame);    
   }      
  menu.add(0, 402, 403, "Now is " + currentText);
  //现在共有两个菜单子项    
  return super.onPrepareOptionsMenu(menu);
  }
 
}

原文地址:https://www.cnblogs.com/lovemo1314/p/2637939.html