您的位置:首页 > 移动开发 > Android开发

android学习之菜单的子菜单的学习

2016-07-26 22:57 309 查看
android菜单的学习之子菜单

android菜单学习之选项菜单---------------------

1、在android的3.0以后可以在item的标签中添加on-click这个。这就是一个单独注册一个事件的监听。但一般情况

   下,不推荐使用这个方式注册点击事件。

2、子菜单中是不能再添加子菜单的,

3、添加子菜单---

   <menu xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    tools:context="com.fjx.activity.MainActivity" >

    <item

        android:id="@+id/file"

        android:title="@string/file">

        <!-- 这就是一个子菜单 -->

        <menu>

            <item 

                android:id="@+id/create_new"

                android:title="@string/create_new"/>

            <item 

                android:id="@+id/open"

                android:title="@string/open"/>

        </menu>

     </item>

</menu>

4、二级菜单的点击事件。------

  该菜单是一个选项菜单的点击事件。

  public boolean onOptionsItemSelected(MenuItem item) {

    //二级的菜单的获取的id的方式,并且添加点击事件。

     //获取子菜单。

     SubMenu sItem=item.getSubMenu();

     //根据子菜单的id来做点击事件。找到子项的id。

     switch (item.getItemId()) {

      case R.id.create_new:
Toast.makeText(MainActivity.this, "----->新建", 1).show();

      break;

      case R.id.open:

         Toast.makeText(MainActivity.this, "----->打开", 1).show();

      break;

    }

    return super.onOptionsItemSelected(item);

}

5、其实菜单的点击事件做到二级菜单的点击事件就可以了。

6、子菜单的点击事件也是走onOptionsItemSelected()这个方法的。

android菜单学习之上下文菜单。-----------

1、上下文菜单提供了一个动作,影响了一个选项。

2、上下文的菜单使用才ListView和GridView中比较多一点。

3、它可以浮动在activity中。

4、上下文菜单是执行长按事件才会出来的,点击是不会出来的。

5、registerContextMenu()使用该方法去注册上下文菜单。

6、给一个ListView添加一个上下文的菜单--------

  (1)、context.registerContextMenu(ListView);

  (2)、重写onCreateContextMenu()方法。

 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {

    super.onCreateContextMenu(menu, v, menuInfo);

    getMenuInflater().inflate(R.menu.main, menu);//添加一个菜单的布局。

 }

 (3)、上下文菜单的点击事件----

 @Override

 public boolean onContextItemSelected(MenuItem item) {

   return super.onContextItemSelected(item);

 }

 @Override

 public boolean onContextItemSelected(MenuItem item) {

    AdapterContextMenuInfo info=(AdapterContextMenuInfo) item.getMenuInfo();

    int id = item.getItemId();

    switch (id) {

      case R.id.delete:
String value=adapter.getItem(info.position);
Toast.makeText(MainActivity.this, "删除"+value+"--"+info.position, 1).show();

      break;

      case R.id.add:

        Toast.makeText(MainActivity.this, "添加黑名单", 1).show();

      break;

      case R.id.cancel:
Toast.makeText(MainActivity.this, "取消", 1).show();

      break;

      }

    return super.onContextItemSelected(item);

}

android菜单学习之弹出式菜单-----------------

1、弹出式菜单是一种菜单的模式,他可以显示在某个view的下面,当有空间的时候。如果下面没有空间,就

   显示在view的上面。

2、如何写一个弹出式菜单----

   main.xml

   

  <menu xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    tools:context="com.fjx.activity.MainActivity" >

    <item

        android:id="@+id/open"

        android:showAsAction="never"

        android:title="打开"/>

    <item

        android:id="@+id/close"

        android:showAsAction="never"

        android:title="关闭"/>

  </menu>

   activity.java中

    public void showPopup(View view){

    PopupMenu popupMenu=new PopupMenu(this, view);

    popupMenu.getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());

    popupMenu.show();

    }

3、菜单的Group自己看。--------------

4、菜单中可以触发一个动作或意图。

5、可以使用activity去添加一个菜单。

android菜单学习之showasaction属性---------

1、这就是设置菜单的行为的属性---

2、ashowasaction的值---有1)、always,2)、never,3)、ifRoom,4)、等

android菜单的学习之actionMode菜单的模式------

1、上下文菜单中android的3.0以后出现的一种菜单的模式。

2、该模式的使用注意看android的官方的文档---还有结合下面的例子

   步骤:

   1)、 ActionMode.Callback callback=new Callback(),并重写它的方法。

   2)、onCreateActionMode(ActionMode mode, Menu menu) 在这个方法中

         mode.getMenuInflater().inflate(menuRes, menu);加载菜单。

   3)、public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
 switch (item.getItemId()) {
   case R.id.delete:

                Toast.makeText(MainActivity.this, "---->delete", 1).show();
   break;
   case R.id.cancel:
       Toast.makeText(MainActivity.this, "---->cancel", 1).show();
   break;
   case R.id.add:
       Toast.makeText(MainActivity.this, "---->add", 1).show();
  break;
}

    4)、mode.finish();

        

    

   

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android