2010-07-01 70 views
0

我想顯示選項菜單時,我的應用程序中選中一個列表項目。我通過廣播intent來做到這一點,當通過擴展活動的偵聽器和輔助類來點擊複選框時。我的幫助類代碼是:Android - NullPointerException當調用sendBroadcast(意圖)

public class menuHelper extends Activity{ 

    private void showMenu(int checked){ 

     try{ 
      Intent intent = new Intent(SHOW_MENU); 
      intent.putExtra("check", checked); 
      sendBroadcast(intent); 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 

問題是何時調用sendBroadcast方法。引發異常,堆棧跟蹤狀態爲NullPointerException,地址爲sendBroadcast(intent)。據我所知,意圖不是null,但我在這裏丟失了一些東西,因爲拋出了異常。

+0

嗨那裏, 我有同樣的問題。你能更詳細地瞭解你的解決方案嗎? 您的意思是,如果函數的調用者是活動類,則不會發生該錯誤? – cevel 2011-03-29 06:21:41

+0

否。只能從擴展活動的類中調用SendBroadcast方法。我試圖從一個Adapter擴展類中調用它。所以,我使用適配器回到活動並從那裏執行它。 – 2011-04-05 21:41:50

回答

2

看起來,從一個適配器內調用sendBroadcast()方法(不管使用擴展Activity的子類是這樣做的)是非法的。

爲了實現我期望的功能,我發現如果您將調用活動注入適配器類並從活動調用顯示(或隱藏)選項菜單的方法,則不會發生空指針錯誤,並且菜單顯示或不漂亮。

相關問題