将对象传递给新活动返回 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
的值是什么?
嗨,它的这个“公共 ArrayListcomidasPedidasObj
不是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的主要内容,如果未能解决你的问题,请参考以下文章
在Kotlin中,如果将对象传递给类的新实例,然后更改某些属性,它是否会在原始对象中更改?