【问题标题】:Menu key is triggered twice android菜单键被触发两次android
【发布时间】:2015-04-05 17:56:33
【问题描述】:

如果我按下菜单键,它会在我应用的所有活动中触发两次 我试图覆盖 onKeyUp 和 onKeyDown 但没有使用任何关于为什么会发生这种情况的建议?提前感谢代码是这样的..

public class MainActivity extends ActionBarActivity {
    private MainActivityDrawer mainActivityDrawer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        mainActivityDrawer = (MainActivityDrawer) getSupportFragmentManager().findFragmentById(R.id.fragment_main_activity_drawer_in);
        mainActivityDrawer.setUp(R.id.fragment_main_activity_drawer_in, (DrawerLayout) findViewById(R.id.mainDrawer1), toolbar);
        new clicklisteners().execute();
        DrawerLayout drawerLayout = ((DrawerLayout) (findViewById(R.id.mainDrawer1)));
        drawerLayout.setStatusBarBackground(R.color.PrimaryColorDark);
        registerReceiver(err, new IntentFilter("ERROR_LOG_BUTTON_CLICKED"));
        //toolbar.setOnKeyListener(this);
    }

    @Override
    public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {

        return false;
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        return false;
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if(event.getAction()==KeyEvent.ACTION_UP)
        {
            if(event.getKeyCode()==KeyEvent.KEYCODE_MENU)
            {
                ShowToast("Hello");
                return true;
            }
        }
        if(event.getKeyCode()==KeyEvent.KEYCODE_BACK)
        {
            if(mainActivityDrawer.isOpened())
            {
                mainActivityDrawer.close();
            }
            else
            {
                finish();
            }
        }
        return false;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater=getMenuInflater();
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        return super.onPrepareOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item);
    }
    ......
}

【问题讨论】:

  • 请给我们看一些代码。提出含糊的问题永远不会有帮助。
  • 我发布了我的 MainActivity 的代码
  • 这是什么:new clicklisteners().execute();
  • 这是一个异步任务,用于创建按钮和复选框并分配 onClicklistener 和 OnCheckedChchange 监听器
  • 似乎库 'com.android.support:appcompat-v7:22.0.0' 的菜单按钮有问题,当我将 v7:22.0.0 设置为 v7:21.0.0 时菜单键工作正常

标签: android


【解决方案1】:

似乎库 'com.android.support:appcompat-v7:22.0.0' 的菜单按钮有问题,当我将 v7:22.0.0 设置为 v7:21.0.0 时,菜单键可以正常工作

【讨论】:

  • 22.1.1仍有问题
猜你喜欢
  • 1970-01-01
  • 2020-04-15
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多