android UI menu code

來源:互聯網
上載者:User

目前還沒有整理,只是把代碼弄上來。

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);
  }
 
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.