2011-04-15 328 views
0

我有一個活動,它有一個用於更新textfield的靜態方法。這樣我可以從另一個活動更新這個視圖。以靜態方式訪問活動

但現在我試圖在這個靜態方法中獲得一個Context變量,這是不可能的。我試過聲明一個上下文變量並初始化它在onCreate ( context = getApplicationContext();)

但我仍然無法訪問此靜態方法中的上下文。這通常如何完成?

編輯:關於我的情況的更多信息。我在一個活動(a)中開始countdowntimer,該活動更新了另一個活動的(b)「textfield 」每秒。它通過以靜態方式訪問b的setTextField來實現此目的。

回答

3

這是如何正常進行?

通過靜態方法訪問TextView不是從其他活動更新字段的最佳方法。如果您想在啓動時將值傳遞給活動,則可以通過意向發送數據(即intent.getExtras)。如果您想從子活動中傳回數據,則可以使用startActivityForResult

1

你要走的方式很奇怪。你爲什麼試圖改變另一個活動內容?也許你需要使用startActivityForResult來創建一個新的活動,然後返回結果並根據它改變視圖?

0

你可能想要檢查一些面向對象的文檔並使用靜態函數。這不是一個很好的方法。

但我們不是在談論一個更好的完整sollution:你可以添加一個參數與上下文的功能,只要給它,當你調用函數:)

0

當你忙於活動A,有一個在,因爲它根本就沒有在這一點上向用戶顯示更新的活動B的東西沒有意義時間。

我看來,你需要在這裏有某種全局變量,可以在活動B.

結帳的的onResume拾起了這個問題:How to declare global variables in Android?

它展示瞭如何使用應用程序類來維護全局應用程序狀態,在需要時可從所有活動訪問。

相關問題