android - .getImage() 上的空对象引用 android
问题描述
我有一个片段。单击图像后,我开始活动。但我不断收到这个错误
Unable to start activity ComponentInfo{com.flag.app/com.flag.app.app.activity.MarkerDetailsActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method 'com.flag.app.app.model.Image com.flag.app.app.model.Marker.getImage()'
on a null object reference
所以,这是我的活动
public class MarkerDetailsActivity extends AppCompatActivity {
public static Intent getStartIntent(Context context, Marker marker) {
Intent startIntent = new Intent(context, MarkerDetailsActivity.class);
startIntent.putExtra(EXTRA_MARKER, marker);
return startIntent;
}
ImageView mImageView;
TextView mNameTextView;
Marker mMarker;
MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details_marker);
mMarker = getIntent().getParcelableExtra(EXTRA_MARKER);
mImageView = findViewById(R.id.image_view);
mMapView = findViewById(R.id.map_view);
mMapView.onCreate(savedInstanceState);
bindMarker(mMarker);
}
private void bindMarker(Marker marker) {
Picasso.with(mImageView.getContext())
.load(marker.getImage().getUrl())
.into(mImageView);
mAuthorTextView.setText(marker.getAuthor());
mDescriptionTextView.setText(marker.getDescription());
mDateTextView.setText(marker.getDate());
}
}
如何解决?
解决方案
检查空值。
private void bindMarker(Marker marker) {
if(marker != null){
Picasso.with(mImageView.getContext())
.load(marker.getImage().getUrl())
.into(mImageView);
mAuthorTextView.setText(marker.getAuthor());
mDescriptionTextView.setText(marker.getDescription());
mDateTextView.setText(marker.getDate());
}}
推荐阅读
- javascript - 删除元素后保持在 Map 对象中的插入顺序
- python - “错误:命令 'cl.exe' 失败:没有这样的文件或目录” - Python Dedupe 安装
- python - Python subprocess kill 不会影响 SSH 命令,就像在命令行上手动杀死它一样
- python - 修改多边形,使它们不重叠并且面积保持不变
- javascript - React Context API 似乎要重新渲染每个组件
- scala - Akka 如何访问集群中的远程参与者
- php - 在 debian 中安装 php 的问题
- ruby-on-rails - 不允许的参数:ROR
- c# - 找出单击了哪个 Windows 资源管理器窗口来启动我的可执行文件。
- c - C中单个文本字符串中的多个字符数组scanf