2010-10-15 90 views
3

我正在編寫我的第一個Android應用程序,並且在處理上下文對象時遇到了一些問題。很多方法/構造函數似乎都需要當前的上下文(活動),這會在我的動作偵聽器中導致一些問題。我沒有將所有監聽器和處理程序都作爲活動類中的匿名類,而是爲每個要處理的事件創建了類。如何訪問非活動類中的上下文

buttonRegister.setOnClickListener(new RegisterButtonClickAction()); 

然而,當這樣做,我有我的聽衆內沒有訪問當前上下文對象:例如,按鈕buttonRegister將被初始化。我可以將當​​前上下文作爲構造函數參數傳遞,但我不確定這是否是最佳選擇。什麼是在Android中創建處理程序/偵聽器或一般處理上下文對象的「最佳實踐」?

感謝,
B3N

+0

我一直在使用構造函數參數或匿名內部類沒有問題。 – mschonaker 2010-10-15 05:16:30

回答

1

只是通過在處理程序的構造函數當前上下文。

使用像這樣的事件處理程序可能會變得混亂。大多數情況下,當你處理一些事件時 - 比如按下按鈕 - 然後你想改變Activity中其他變量的狀態(改變一些數據結構,像TextView之類的UI元素,不管)。如果事件處理程序類是外部的,則還必須爲它可以修改的對象提供引用,可能在它的構造器中。

我通常只是使用匿名,或者至少是內部類,我認爲這更簡潔更簡單。

+0

謝謝,即使我想避免使用各種事件處理邏輯的巨大類並將其分解一點,它也是有意義的。 – b3n 2010-10-15 12:03:33

相關問題