使用多个意图在不起作用的活动中传递数据

时间:2018-08-06 15:43:59

标签: android android-intent android-recyclerview

我想在活动之间传递数据。当我使用一个活动(详细信息)时,一切正常,但是当我添加第二个活动(MapsActivity)时,应用程序将忽略(详细信息)并将数据仅传输到MapsActivity。我该如何解决?预先感谢

 holder.itemView.setOnClickListener(v -> {
        Intent mIntent = new Intent(context, Details.class);
        Intent mapIntent= new Intent(context,MapsActivity.class);
        mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mapIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);


        mIntent.putExtra("Country_CurrencyCode", pozycja.getCurrencies().get(0).getCode());
        mIntent.putExtra("Country_CurrencyName", pozycja.getCurrencies().get(0).getName());
        mIntent.putExtra("Country_CurrencySymbol", pozycja.getCurrencies().get(0).getSymbol());

        context.startActivity(mIntent);

        mapIntent.putExtra("Country_Lat",pozycja.getLatlng().get(0));
        mapIntent.putExtra("Country_Lng",pozycja.getLatlng().get(1));

        context.startActivity(mapIntent);

1 个答案:

答案 0 :(得分:0)

这是我没有想到的行为,但是在测试您的代码之后,我发现了以下这些内容:
您首先进行Details活动,然后进行第二MapsActivity活动。
结果是您在屏幕上看到第二个活动:MapsActivity
对于此活动,您可以检查它是否具有传递的所有其他值。
发生的事情是,尽管您也已经启动了第一个活动:Details,但尚未调用其onCreate(),但是在您关闭第二个活动MapsActivity时将立即调用它然后您会看到它的附加功能随您放置而存在。
因此,第一个活动可以正常使用,但在调用onCreate()之前,您无法访问它们。
因此,一种解决方法
仅启动Details活动,但不仅传递自己的附加功能,还传递MapsActivity的附加功能。
在“详细信息”的onCreate()开始于MapsActivity中, 自己的附加功能。