2016-12-06 32 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

相关问题