2015-04-05 89 views
0

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

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); 
    } 
    ...... 
} 
+1

请给我们展示一些代码。问模糊的问题是没有帮助的。 – 2015-04-05 17:57:29

+0

我发布了我的MainActivity的代码 – 2015-04-05 18:09:07

+0

这是什么:'new clicklisteners()。execute();' – sschrass 2015-04-05 18:58:52

回答

0

看来图书馆com.android.support:appcompat-v7:22.0.0'与菜单按钮,当我做了V7的问题: 22.0.0至v7:21.0.0菜单键正常工作

+0

22.1.1仍然存在问题 – Youngjae 2015-07-10 13:43:39