zoukankan      html  css  js  c++  java
  • PopupMenu使用:

    插入头文件:

    import java.lang.reflect.Field;
    import com.android.internal.view.menu.MenuPopupHelper;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.widget.ImageView;
    import android.widget.PopupMenu;
    import android.widget.PopupMenu.OnDismissListener;
    import android.widget.PopupMenu.OnMenuItemClickListener;
    import android.view.KeyEvent;

    代码如下:

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.fm_action_bar_favorite, menu);
            mFlowMenuItem = menu.findItem(R.id.fm_menu_favorite);
            return true;
        }
        public void showPopupMenu() {
            mPopupMenu = new PopupMenu(mContext, findViewById(R.id.fm_menu_favorite));
            Menu menu = mPopupMenu.getMenu();
            mPopupMenu.getMenuInflater().inflate(R.menu.fm_menu_favorite, menu);
            mPopupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    switch (item.getItemId()) {
                        case R.id.fm_station_add:
                            showAddNewStationDialog();
                            break;
    
                        case R.id.fm_remove_all:
                            showRemoveAllStationDialog();
                            break;
    
                        case R.id.fm_return:
                            finish();
                            break;
    
                        default:
                            break;
                    }
                    return false;
                }
            });
            mPopupMenu.setOnDismissListener(new OnDismissListener() {
                @Override
                public void onDismiss(PopupMenu menu) {
                    mFlowMenuItem.setEnabled(true);
                    invalidateOptionsMenu();
                }
            });
            try {
                Field field = mPopupMenu.getClass().getDeclaredField("mPopup");
                field.setAccessible(true);
                MenuPopupHelper mHelper = (MenuPopupHelper) field.get(mPopupMenu);
                mHelper.setForceShowIcon(true);
            } catch (IllegalAccessException | NoSuchFieldException e) {
                e.printStackTrace();
            }
            mPopupMenu.show();
        }
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_MENU){
                mFlowMenuItem.setEnabled(false);
                showPopupMenu();
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }
    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == android.R.id.home) {
                super.onBackPressed();
                return true;
            }

            if (item.getItemId() == R.id.fm_menu_favorite) {
                item.setEnabled(false);
                showPopupMenu();

            }

            return super.onOptionsItemSelected(item);
        }
  • 相关阅读:
    数据增强
    变态跳台阶
    跳台阶
    数据分析--简单回测框架开发
    数据分析--羊驼交易法则(选股)
    数据分析--动量策略vs反转策略(选股)
    数据分析--PEG策略(选股)
    数据分析--布林带策略(择时)
    数据分析--均值回归策略(选股)
    数据分析--单因子选股策略、多因子选股策略(选股)
  • 原文地址:https://www.cnblogs.com/wjhblogs/p/4698707.html
Copyright © 2011-2022 走看看