Android --- Create Menu 的二级子菜单


Android --- Create Menu 的二级子菜单:

【话不多说,直接上代码】

  1. package com.bison;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.text.Html;  
  6. import android.view.ContextMenu;  
  7. import android.view.ContextMenu.ContextMenuInfo;  
  8. import android.view.Menu;  
  9. import android.view.SubMenu;  
  10. import android.view.View;  
  11. import android.view.View.OnLongClickListener;  
  12. import android.widget.TextView;  
  13.   
  14. public class TestOneActivity extends Activity {  
  15.     // 声明TextView   
  16.     private TextView tv;  
  17.   
  18.     @Override  
  19.     public void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         // 声明Html代码   
  22.         String strHtml = "<font color = 'red'>这是红色</font>" + "<br>"  
  23.                 + "<font color = 'green'>这是绿色</font>";  
  24.   
  25.         // 实例化   
  26.         tv = new TextView(this);  
  27.         // 显示的文本   
  28.         tv.setText(Html.fromHtml(strHtml));  
  29.         // 设置文本的大小   
  30.         tv.setTextSize(24);  
  31.         // 加载TextView为显示页面   
  32.         setContentView(tv);  
  33.         // tv注册上下文菜单   
  34.         registerForContextMenu(tv);  
  35.   
  36.         // 声明可以长按   
  37.         tv.setLongClickable(true);  
  38.         tv.setOnLongClickListener(new OnLongClickListener() {  
  39.   
  40.             public boolean onLongClick(View v) {  
  41.                 // 显示上下文菜单   
  42.                 v.showContextMenu();  
  43.                 // 修改为true   
  44.                 return true;  
  45.             }  
  46.         });  
  47.   
  48.     }  
  49.   
  50.     /** 设置Menu方法 */  
  51.     private void getMenu(Menu menu, String str) {  
  52.         menu.add(111, str + "1");  
  53.         menu.add(122, str + "2");  
  54.         menu.add(133, str + "3");  
  55.         // 声明子菜单   
  56.         SubMenu mSubMenu1 = menu.addSubMenu(str + "文件");  
  57.         mSubMenu1.add(1054, str + "新建");  
  58.         mSubMenu1.add(1066, str + "打开");  
  59.         SubMenu mSubMenu2 = menu.addSubMenu(str + "编辑");  
  60.         mSubMenu2.add(2078, str + "复制");  
  61.         mSubMenu2.add(2089, str + "删除");  
  62.     }  
  63.   
  64.     @Override  
  65.     public void onCreateContextMenu(ContextMenu menu, View v,  
  66.             ContextMenuInfo menuInfo) {  
  67.         getMenu(menu, "上下文");  
  68.     }  
  69.   
  70.     @Override  
  71.     public boolean onCreateOptionsMenu(Menu menu) {  
  72.         getMenu(menu, "Menu按钮");  
  73.         return super.onCreateOptionsMenu(menu);  
  74.     }  
  75.   
  76. }  

PS:需要注意的是 上下文菜单 要注册,还要showContextMenu()

更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11

相关内容