启动新Activity时Intent所有extras均为null问题求助
Android Intent传参后DetailActivity获取值全为null的排查方案
检查键名一致性
确认DogCardAdapter中Intent.putExtra()使用的键名,与DetailActivity中getStringExtra()/getIntExtra()等方法的键名完全匹配,包括大小写、拼写。建议通过定义常量类统一管理键名,避免手动拼写错误。验证传递参数的有效性
在DogCardAdapter启动Intent前,添加日志打印确认要传递的狗狗名称、年龄、爱好等参数本身不为null:Log.d("DogCardAdapter", "Dog Name: " + dog.getName() + ", Age: " + dog.getAge());若参数本身为null,需先排查数据源的正确性。
确认Intent创建与启动逻辑
检查DogCardAdapter中Intent的创建是否正确传入目标Activity类,以及上下文是否有效:Intent intent = new Intent(holder.itemView.getContext(), DetailActivity.class);避免使用Application Context启动Activity,优先使用View关联的上下文或Activity实例。
检查参数获取时机
确保在DetailActivity的onCreate()方法中通过getIntent()获取参数,不要在构造方法或未完成初始化的生命周期阶段调用。同时避免调用setIntent()覆盖原始Intent,导致参数丢失。对象传递的接口实现检查(若传递自定义对象)
若直接传递Dog对象而非单个参数,需确认Dog类正确实现Parcelable或Serializable接口,且writeToParcel()与CREATOR.createFromParcel()方法中的字段读写完全对应,无遗漏或顺序错误。
内容的提问来源于stack exchange,提问作者Iurii Mg
相关产品推荐
相关产品推荐

