2012-07-19 26 views
1

在類A中使用變量v,但是當我轉到類B並返回到類A時,該值發生變化。返回到類A時,值爲最初的。我們可以通過添加到final變量或static來修復它,使其保持其值嗎?從另一個類返回時丟失的變量值

enter image description here

感謝

+3

這裏我們需要一個更多的上下文。通過變量你是指「場」或「方法中的局部變量」?什麼「返回課堂」甚至意味着什麼? – 2012-07-19 08:05:50

+2

你能發表一些代碼嗎? – 2012-07-19 08:06:01

+0

對不起,我沒有充分解釋,把一個圖像,這將很容易理解我的問題 – jlopez 2012-07-19 08:13:07

回答

2

如果你正在談論Android's Activity classes - 該解決方案是使用靜態的,因爲每一個新的活動啓動時間,啓動活動被「暫停」(它的onPause函數被調用。當在新啓動的Activity中按下後退按鈕時,堆棧中先前的活動「恢復」,並調用其onCreate()方法。

而靜態變量只初始化一次。同時,變量的單個副本由所有的ins共享class/Activity的風格,所以使用靜態的另一個好處是你可以修改任何其他類的值。

就你而言,你可能正在初始化onCreate()中的'非靜態'變量,因此從另一個活動返回它的值重新初始化。

使用「普通」Java類從另一個類使用函數之後返回控件時,不應該發生這種情況。

+0

使用公共靜力學?高效? – jlopez 2012-07-19 08:19:19

+0

取決於你如何使用它們。 – 2012-07-19 08:25:09

+0

我的變量在onCreate() – jlopez 2012-07-19 08:26:00

相關問題