Android 将对象的引用传递给活动
我有一个要传递给活动的匿名类对象的引用。它是对回调函数fn的一种引用,回调函数fn根据活动上的操作(即单击按钮)被调用。但是,我不知道这样做的方法,因为活动不能直接实例化(仅通过startActivity完成),并且使用意图将通过值而不是引用传递我的对象。所以,我需要一个好的解决方案的提示。我想避免静校正 简短回答:不,您不能将对象作为引用传递给活动。简短回答:不,您不能将对象作为引用传递给活动。试试这个Android 将对象的引用传递给活动,android,Android,我有一个要传递给活动的匿名类对象的引用。它是对回调函数fn的一种引用,回调函数fn根据活动上的操作(即单击按钮)被调用。但是,我不知道这样做的方法,因为活动不能直接实例化(仅通过startActivity完成),并且使用意图将通过值而不是引用传递我的对象。所以,我需要一个好的解决方案的提示。我想避免静校正 简短回答:不,您不能将对象作为引用传递给活动。简短回答:不,您不能将对象作为引用传递给活动。试试这个 CustomListing currentListing = new CustomList
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);
试试这个
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);
答案如下:
在要向其传递对象引用的活动中创建公共静态方法
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);
答案如下:
在要向其传递对象引用的活动中创建公共静态方法
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);
使用parcelable。我认为在Java/Android中不可能通过引用传递。。请参阅此链接。在您的例子中,您可以使用Parceble或Serilizable。嗯,是的,根据Java语言,Java通过值传递引用(他们决定调用指针引用)。在C++范例中,它通过引用。@ TaKaVy可以给出java java中引用的引用的任何来源。(他们决定调用指针引用,从而混淆了新手。因为那些引用是通过值传递的)。请参阅此链接。在您的例子中,您可以使用Parceble或Serilizable。嗯,是的,根据Java语言,Java通过值传递引用(他们决定调用指针引用)。在C++范例中,它通过引用。@ TaKaVy可以给出java中可能引用的任何来源(它们决定调用指针引用,从而混淆新手),因为这些引用是通过值传递的。现在检查。我想避免静态——“yournextractivity.object=object;”静态方法中的this.object=object?编辑了它。现在检查。我想避免静态——“yournextractivity.object=object;”