【安卓6】高级控件——菜单(menu)

菜单

menu ——菜单默认隐藏

         ——实现菜单的接口:

  1. Menu,父接口,用于创建主菜单
  2. SubMenu继承Menu接口,用于创建子菜单
  3. ContextMenu接口继承Menu接口,用于创建上下文菜单
  4. MenuItem接口用户创建菜单项

1.选项菜单

  基本方法:

    •  public boolean onCreateOptionsMenu(Menu menu)

             在此方法之中设置多个菜单项(MenuItem)

      • 返回值:返回true表示显示菜单,反之则不显示
    •   public boolean onOptionsItemSelected(MenuItem item)

              在此方法之中判断菜单项的操作

    •   public void onOptionsMenuClosed(Menu menu)

              当菜单关闭时触发此操作

    •   public boolean onPrepareOptionsMenu(Menu menu)

              在菜单显示前触发此操作

      • 返回值:返回true则继续调用OnCreateOptionsMenu(方法),反之则不再调用

 

  1. 在方法中定义菜单
  2. 在资源文件中定义菜单

    1) 在res文件夹下创建menu文件夹

    2) 在menu文件夹下创建options.xml

<menu
xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/save"
         android:title="保存信息">
    </item>
    <item android:id="@+id/delete"
         android:title="删除信息">
    </item>
    <item android:id="@+id/help"
         android:title="帮助">
        <menu>
            <item android:id="@+id/item01"
                 android:title="说明">
            </item>
            <item android:id="@+id/item02"
                 android:title="简介">
            </item>
        </menu>
    </item>
</menu>
options.xml
 1 protected void onCreate(Bundle savedInstanceState) {
 2         super.onCreate(savedInstanceState);
 3         setContentView(R.layout.main);
 4     }
 5 public boolean onCreateOptionsMenu(Menu menu) {
 6     //1.在方法中定义菜单
 7         //menu.add("增加");
 8         //menu.add("删除");
 9         //SubMenu sm=menu.addSubMenu("帮助");
10         //sm.add("简介");
11         //sm.add("说明");
12     //2.在资源文件中定义菜单
13         //创建菜单资源解析对象
14         MenuInflater mif = getMenuInflater();    
15         //解析菜单资源    
16         mif.inflate(R.menu.options, menu);
17         return super.onCreateOptionsMenu(menu);
18     }
19 //重写Activity类中的方法在该方法中编写菜单项被选中后的事件代码
20 public boolean onOptionsItemSelected(MenuItem item) {
21         switch (item.getItemId()) {
22         case R.id.save:
23             Toast.makeText(this, "选中保存", 500).show();
24             break;
25         case R.id.delete:
26             Toast.makeText(this, "选中删除", 300).show();
27             break;
28         }
29         return super.onOptionsItemSelected(item);
30 }
选项菜单部分java代码

2.上下文菜单

  基本方法:

    • public void onCreateContextMenu(ContextMenu menu,

                   View v, ContextMenu. ContextMenuInfo menuInfo)

             在此方法之中可以设置所需要的显示的所有菜单项

    • public boolean onContextItemSelected(MenuItem item)

             当某一个菜单项被选中时触发此操作

    • public void onContextMenuClosed(Menu menu)

             当菜单项关闭时触发此操作

<menu>
    <item android:id="@+id/save"
         android:title="保存信息"/>
    <item android:id="@+id/delete"
         android:title="删除信息"/>
    <item android:id="@+id/help"
         android:title="帮助"/>
</menu>
options.xml
 1 protected void onCreate(Bundle savedInstanceState) {
 2         super.onCreate(savedInstanceState);
 3         setContentView(R.layout.main);
 4         //长按文本框出现上下文菜单
 5         TextView tv=(TextView) findViewById(R.id.TextView01);
 6         registerForContextMenu(tv);
 7 }
 8 public void onCreateContextMenu(ContextMenu menu, 
 9     View v, ContextMenuInfo menuInfo) {
10         super.onCreateContextMenu(menu, v, menuInfo);
11         MenuInflater flater=getMenuInflater();
12         flater.inflate(R.menu.options,menu);        
13         menu.setHeaderIcon(R.drawable.b);
14         menu.setHeaderTitle("信息操作");
15 }
上下文菜单部分java代码
原文地址:https://www.cnblogs.com/leelee/p/6992967.html