Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将对象的引用传递给活动_Android - Fatal编程技术网

Android 将对象的引用传递给活动

Android 将对象的引用传递给活动,android,Android,我有一个要传递给活动的匿名类对象的引用。它是对回调函数fn的一种引用,回调函数fn根据活动上的操作(即单击按钮)被调用。但是,我不知道这样做的方法,因为活动不能直接实例化(仅通过startActivity完成),并且使用意图将通过值而不是引用传递我的对象。所以,我需要一个好的解决方案的提示。我想避免静校正 简短回答:不,您不能将对象作为引用传递给活动。简短回答:不,您不能将对象作为引用传递给活动。试试这个 CustomListing currentListing = new CustomList

我有一个要传递给活动的匿名类对象的引用。它是对回调函数fn的一种引用,回调函数fn根据活动上的操作(即单击按钮)被调用。但是,我不知道这样做的方法,因为活动不能直接实例化(仅通过startActivity完成),并且使用意图将通过值而不是引用传递我的对象。所以,我需要一个好的解决方案的提示。我想避免静校正

简短回答:不,您不能将对象作为引用传递给活动。

简短回答:不,您不能将对象作为引用传递给活动。

试试这个

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;”