2016-12-06 31 views
1

我有一個對要傳遞給活動的匿名類對象的引用。它是一種對回調函數fn的引用,它基於對活動的動作,即點擊按鈕而被調用。但是,我不知道這樣做的方式,因爲活動無法直接實例化(僅通過startActivity完成),並且使用意圖會通過值而不是通過引用傳遞我的對象。所以,我需要提示一個好的解決方案。我想避免靜態。將對象的引用傳遞給活動

+0

使用parcelable。 –

+0

我不認爲通過引用傳遞是可能的Java/Android ..請參閱此鏈接http://stackoverflow.com/a/40523/3111083。在你的情況下,你可以使用Parceble或Serilizable .. –

+1

好的,根據Java語言,Java按值傳遞引用(它們決定調用指針引用)。在C++範例中,它通過引用傳遞。 – takesavy

回答

1

簡答:否您無法將對象作爲活動的參考。

0

試試這個

CustomListing currentListing = new CustomListing(); 
Intent i = new Intent(); 
Bundle b = new Bundle(); 
b.putParcelable(Constants.CUSTOM_LISTING, currentListing); 
i.putExtras(b); 
i.setClass(this, SearchDetailsActivity.class); 
startActivity(i); 

之後調用

Bundle b = this.getIntent().getExtras(); 
if (b != null) 
mCurrentListing = b.getParcelable(Constants.CUSTOM_LISTING); 
0

下面是答案:
在活動創建一個公共的靜態方法,你想傳遞一個對象的引用。

public static void openActivity(Activity activity, Class object){ 
     YourNextActivity.object = object; 
     Intent intent = new Intent(activity, YourNextActivity.class); 
     activity.startActivity(intent); 
} 

呼叫從目前的活動這種方法:

YourNextActivity.openActivity(this, classObject); 
+0

this.object =對象在靜態方法? – takesavy

+0

編輯它。現在檢查。 –

+0

我想避免靜態 - 「YourNextActivity.object = object;」 – takesavy

相關問題