2012-07-04 43 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由視圖使用,而此功能被設計爲專用於使用開關盒的菜單項。