2011-01-22 169 views
2

我在我的應用程序中有一個popupwindow是爲了充當一種設置窗口。在這裏面會有一些像複選框和什麼不一樣的小視圖,但我似乎遇到了一個難題讓一個人正常工作。安卓按鈕裏面PopupWindow

目前我只有一個按鈕的視圖,它膨脹,我試圖用它來關閉彈出窗口,但當我嘗試設置onClickListener時出現NullPointerException。事實上,如果我引用按鈕,即使是像「button.isShown()」這樣的東西,它也會給我例外,就好像按鈕不存在一樣。

我試過所有我能想到的東西,但沒有什麼能完全解決這個問題。我假設有一種方法可以在PopupWindow中使用工作按鈕,還是需要修改某種形式的對話框以獲得我之後的效果?

謝謝你的幫助。

回答

2

確保當你調用findViewById(R.id.yourButton)時,你使用的是Dialog.findViewById(id),否則它會去查看你的主佈局上的按鈕,並且找不到它,這會導致NullPointers當您嘗試使用該引用時。

編輯:這裏是圓頂代碼以使其更清晰

AlertDialog.Builder builder = new AlertDialog.Builder(this) 
    .setView(layout); 
    alertDialog = builder.create(); 
    alertDialog.show(); 
    button = (Button) alertDialog.findViewById(R.id.yourButton); 
+0

我希望讓事情變得簡單,因爲我可以,但我結束了在一個新的類擴展對話框,獲得完全控制,我想。你的帖子對我來說很有幫助,非常感謝你。 – Chance 2011-01-23 07:14:43