将对象传递给新活动返回 null

Posted

技术标签:

【中文标题】将对象传递给新活动返回 null【英文标题】:Passing Object to new activity return null 【发布时间】:2020-05-05 21:17:27 【问题描述】:

这是我的意图:

Intent intentPay = new Intent(getApplicationContext(), PayScreenActivity.class);
                    intentPay.putExtra(PayScreenActivity.CHAVE_COMIDA, idRestaurante);
                    intentPay.putStringArrayListExtra("LISTA_COMIDAS", convertedSelected);
                    intentPay.putExtra("COMIDAS", comidasPedidasObj);
                    startActivity(intentPay);

这是我得到的价值:

public class PayScreenActivity extends AppCompatActivity 

public static final String CHAVE_COMIDA = "COMIDA";

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pay_screen);

    final Intent intent = getIntent();
    ArrayList<String> listaComidas = intent.getStringArrayListExtra("LISTA_COMIDAS");
    ArrayList<Comida> listaFinal = intent.getParcelableExtra("COMIDAS");


comidasPedidasObj have 3 values

我的错误:

But it comes Null

【问题讨论】:

我相信您已经知道在某些行上进行调试并没有执行该特定行的代码 - 如果是这样,则存在某种问题,如果没有尝试跳到下一条指令,然后检查值在那个名单上。 (也可以尝试直接将图片放到您的问题中) 嗨,欢迎来到 SO,你能分享更多细节吗? comidasPedidasObj 的值是什么? 嗨,它的这个“公共 ArrayList comidasPedidasObj = new ArrayList();” @javadroid 我已经进入下一条指令,值为空。 (这是我的第一篇文章,我不知道该怎么做,但我会尝试下一篇)@itwasntme 听起来comidasPedidasObj 不是getParcelableExtra,是不是在Logcat 中没有给你一个类型检查错误日志? 【参考方案1】:

使用这个:

 final Intent intent = getIntent();
ArrayList<String> listaComidas = 
   intent.getStringArrayListExtra("LISTA_COMIDAS");
 ArrayList<Comida> listaFinal = 
intent.getExtras("COMIDAS");

您正在向您的意图传递额外信息,但您没有提取这些意图数据。请尝试上面的代码。

【讨论】:

它说不兼容的类型。必需:android.content.Intent 找到:android.os.Bundle 添加 getextra 而不是 parcelable 不起作用 getExtras() 不能应用于 (java.lang.String)。

以上是关于将对象传递给新活动返回 null的主要内容,如果未能解决你的问题,请参考以下文章

尝试将对象传递给活动时得到nullpointer

检测何时将对象传递给 C++ 中的新线程?

显示时将对象传递给模态

在Kotlin中,如果将对象传递给类的新实例,然后更改某些属性,它是否会在原始对象中更改?

将对象传递给序列化程序会产生'序列化程序:无法获取repr for

将 parcelable 对象传递给新活动返回 null