2010-12-20 50 views
0

假設我有2個類擴展了Activity; ActivityA和ActivityB,並且它們在清單XML中正確聲明。如何訪問Android活動類實例字段?

現在,我想要做的就是從ActivityA調用ActivityB並訪問ActivityB的字段。

Intent myIntent = new Intent(MyApplication.getInstance().getApplicationContext(), ActivityB.getClass()); 
startActivityForResult(myIntent,0); 

此代碼不會返回ActivityB的對象,我曾嘗試手動實例化這樣的:

ActivityB actB=new ActivityB(); 

這是確定的,但如何把它傳遞給一個意圖是什麼?

這可能嗎?

+0

你想做什麼?我的意思是......爲什麼要訪問ActivityB的實例字段? – Cristian 2010-12-20 19:51:14

+0

爲什麼不呢?有一些我使用的手動字段。 – 2010-12-20 19:53:23

回答

0

現在,我想要做的就是從ActivityA調用ActivityB並訪問ActivityB的字段。

請不要。

首先,缺乏通過靜態數據成員或通過服務傳遞活動,這是不可能的。第二,你將創建垃圾收集問題,因爲Android會破壞舊的活動來釋放內存,但在它之後,你仍然會持有對來自其他活動的這些活動的引用,否定了這項工作。第三,由於與前一點相同的原因,您有時會持有其他活動的銷燬實例 - 無論您是否喜歡,Android都會繼續銷燬活動。

我相當有信心,無論你認爲你以這種方式解決什麼問題都可以通過其他方式解決。

編輯

通常情況下,你通過從ActivityA數據通過上IntentIntent額外傳遞給startActivity() ActivityB。 ActivityB有責任提取這些附加信息並對它們做些什麼。

+0

@paul simmons:什麼是「手動字段」?通過傳遞給'startActivity()'的'Intent'的Intent extras將ActivityA中的數據傳遞給ActivityB。 ActivityB有責任提取這些附加信息並對它們做些什麼。 – CommonsWare 2010-12-20 20:01:32