zoukankan      html  css  js  c++  java
  • Android Menu

    Android - Menu

    1.ContextMenu

    上下文菜单,就是长按某个view后弹出菜单。关联的是View。

    效果图:

    1.1选项菜单Menu
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <group android:checkableBehavior="none">
            <item android:id="@+id/item_context_item1" android:title="Item1"/>
            <item android:id="@+id/item_context_item2" android:title="Item2"/>
            <item android:id="@+id/item_context_item3" android:title="Item3"/>
        </group>
    </menu>
    
    1.2 为View注册上下文菜单
    registerForContextMenu(view);
    
    1.3创建Menu
      @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    
            MenuInflater inflator=new MenuInflater(this);
            inflator.inflate(R.menu.menu_context,menu);
    
            super.onCreateContextMenu(menu, v, menuInfo);
        }
    
    1.4 Item 点击事件
        @Override
        public boolean onContextItemSelected(MenuItem item) {
    
            switch (item.getItemId()){
                case R.id.item_context_item1:
                    toast("Item1");
                    break;
                 ....
            }
            return super.onContextItemSelected(item);
        }
    

    1.5 ListView 注册 ContextMenu

    registerForContextMenu(lv)
    

    通过 AdapterContextMenuInfo 来获取是点击ItemPosition

    @Override
    public boolean onContextItemSelected(MenuItem item) {
    
        AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
          Toast.makeText(this, "menuInfo.position:" + menuInfo.position, Toast.LENGTH_SHORT).show();
        return super.onContextItemSelected(item);
    }
    

    2.PopupMenu

    // Show Popup Menu
    void showPopupMenu(Context mContext,View view){
    
        // 为View指定 PopupMenu
        PopupMenu pm=new PopupMenu(mContext,view);
        // 指定 Menu 文件
        pm.getMenuInflater().inflate(R.menu.menu_test,pm.getMenu());
        //Item 点击事件
        pm.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                toast(item.getTitle());
                return true;
            }
        });
        pm.show(); //显示
    }
    
  • 相关阅读:
    Bellman算法
    Codeforces Round #378 (Div. 2) D
    运算符优先级
    Kruskal算法
    Java 大数运算
    无根树转有根树
    欧拉函数模板
    HDU 4135 Co-prime(容斥原理)
    快速求n的质因子(数论)
    Markdown中插入数学公式
  • 原文地址:https://www.cnblogs.com/-Tiger/p/9742475.html
Copyright © 2011-2022 走看看