2012-07-04 94 views
0

我有一个只包含一个项的菜单操作。的Android Setonclicklistener不带菜单的项目

Button exit; 
@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // TODO Auto-generated method stub 
     super.onCreateOptionsMenu(menu); 
     MenuInflater blowUp = getMenuInflater(); 
     blowUp.inflate(R.menu.exitmenu, menu); 
     return true; 
    } 
exit=(Button)findViewById(R.id.bexitMenuExit); 

如果我添加监听退出按钮,我得到了错误时抛出(空指针),我肯定是没有语法错误,按钮退出从这个菜单

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/bexitMenuExit" 
     android:title="Exit" 


     android:icon="@android:drawable/ic_menu_close_clear_cancel" 
     ></item> 
</menu> 

什么时正在添加我做错了?

回答

2

有没有必要初始化Button,这不会让我觉得。 就虚增您Menu,只是重写onOptionsItemSelected方法:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    new MenuInflater(getApplicationContext()).inflate(R.menu.exitmenu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getId()) { 
     case R.id.bexitMenuExit: 
     // work that will start when you click on this 
     ... 
    } 
} 

而且,也没有必要使用OnClickListener,这有onOptionsItemSelected方法,你应该使用它。

+0

没有菜单,我的意思是菜单存在为xml – Totti

+0

所以为什么你使用MenuInflater?为创建菜单,是不是? – Sajmon

+0

omg对不起,我的东西menuinflate创建菜单中的XML :( – Totti

0

对于菜单项,如Sajmon所述,您可以使用onOptionsIemsSelected函数。 onClickListener由视图使用,而此功能被设计为专用于使用开关盒的菜单项。