gpt4 book ai didi

java - getIntent().getSerializableExtra 为空

转载 作者:行者123 更新时间:2023-11-30 01:01:00 25 4
gpt4 key购买 nike

我有一个 POJO 类实现了 Serializable我想借助 IntentBundle 将此类的对象传输到另一个 activity。我在传输之前检查了对象,它不是空的。 (正确获取其中一个属性)

放置:

private void onFriendClick(FriendHolder holder, int position) {
Intent intent = new Intent(context, ProfileActivity.class);
Bundle extra = new Bundle();
extra.putSerializable(Consts.KEY_USER_JSON, friendList.get(position));
intent.putExtra(Consts.KEY_USER_JSON, extra);
Log.e("onFriendClick", String.valueOf(friendList.get(position).getName()));
context.startActivity(intent);
}

从另一个 Activity 中获取:

 private void setupProfile() {
Bundle extras = getIntent().getExtras();
if (extras != null) {
profile = (ProfileDTO) getIntent().getSerializableExtra(Consts.KEY_USER_JSON);
Log.e("onFriendClick", String.valueOf(profile.getName()));//NPE this
} else profile = user.getProfile();
}

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String ru.techmas.getmeet.api.models.ProfileDTO.getName()' on a null object reference at ru.techmas.getmeet.activities.ProfileActivity.setupJsonProfile(ProfileActivity.java:103)

最佳答案

您不需要创建Bundle。尝试做:

private void onFriendClick(FriendHolder holder, int position) {
Intent intent = new Intent(context, ProfileActivity.class);
intent.putExtra(Consts.KEY_USER_JSON, friendList.get(position));
Log.e("onFriendClick", String.valueOf(friendList.get(position).getName()));
context.startActivity(intent);
}

private void setupProfile() {
if (getIntent().getSerializableExtra(Consts.KEY_USER_JSON) != null) {
profile = (ProfileDTO) getIntent().getSerializableExtra(Consts.KEY_USER_JSON);
Log.e("onFriendClick", String.valueOf(profile.getName()));//NPE this
} else {
profile = user.getProfile();
}
}

但如果仍然想使用Bundle,您应该替换您发布的代码:

profile = (ProfileDTO) getIntent().getSerializableExtra(Consts.KEY_USER_JSON);

通过:

profile = (ProfileDTO) extras.getSerializableExtra(Consts.KEY_USER_JSON);

关于java - getIntent().getSerializableExtra 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39416486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com