- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 POJO
类实现了 Serializable
我想借助 Intent
和 Bundle
将此类的对象传输到另一个 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/
我有一个 POJO 类实现了 Serializable我想借助 Intent 和 Bundle 将此类的对象传输到另一个 activity。我在传输之前检查了对象,它不是空的。 (正确获取其中一个属性
一个 Activity 中有一个链接,我点击它后它会打开另一个 Activity 。我为第二个 Activity 添加了一个 enum 参数。 @Override protected void onC
我想将对象从一个 Activity 转移到另一个 Activity 。 在我的第一节课中,我放了以下内容 Intent intenttt ; Intent intentttt.putExtra("us
我的例子: public static final String EXTRA_TARGET_FRAGMENT = "fragment_to_show"; public static void
我需要一点帮助来解决以下问题。 我有两个 Activity ,A 和 B。 Activity A 启动 B 以获取结果,B 将一个可序列化对象发回给 A。 Activity A开始 Activity
我正在尝试发送带有从解析器获得的 16 个字符串数据的 bean 对象(implents Serializable)。我使用 putExtra("string",serializablevalue)
我混淆了 intent.getSerializableExtra (String name) 和 intent.getExtras().getSerializable (String key) 我们可
在主题中,我很好奇为什么它在 getExtras().getSerializable(key) 和 getSerializableExtra(name) 上得到区分。 在这两种情况下,我们都会收到 S
在onActivityResult()中,getIntent().getSerializableExtra()为null。但是当我检查 putSerializable() 值时,它不为空,标签是相同的
所以我这里有这段代码; myIntent.putExtra("schedule",serializableClass); 这个 Intent 转到我的广播接收器,我确实得到了如下序列化, public
我是一名优秀的程序员,十分优秀!