【发布时间】:2021-03-02 12:13:16
【问题描述】:
Logcat 错误(当没有找到图像时,它无法在 glide 中处理 null 异常)。我无法输入 if/else 语句。
2020-11-19 10:46:27.887 9386-9386/com.example.bookretrofit E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.bookretrofit, PID: 9386
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.bookretrofit.Imagelink.getSmallThumbnail()' on a null object reference
at com.example.bookretrofit.RecyclerViewAdapter.onBindViewHolder(RecyclerViewAdapter.java:56)
at com.example.bookretrofit.RecyclerViewAdapter.onBindViewHolder(RecyclerViewAdapter.java:19)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)
at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)
at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)
at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)
at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)
at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7548)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
RecyclerViewAdapter
public void onBindViewHolder(@NonNull MyViewHolder holder, int i) {
VolumeInfo volumeInfo = this.volumeInfo.get(i).getVolumeInfo();
holder.tvTitle.setText(volumeInfo.getTitle());
if (volumeInfo.getAuthors() != null && !volumeInfo.getAuthors().isEmpty()) {
holder.tvAuthor.setText(volumeInfo.getAuthors().get(0));
} else {
holder.tvAuthor.setText("NO AUTHOR");
}
Glide.with(mContext).load(volumeInfo.getImageLinks().getSmallThumbnail()).into(holder.ivThumbnail);
如果图像加载为空,我想从 Drawable 返回默认图像。如何使用 if/else 语句来做到这一点。这部分代码造成了所有问题
Glide.with(mContext).load(volumeInfo.getImageLinks().getSmallThumbnail()).into(holder.ivThumbnail);
【问题讨论】:
标签: android-studio if-statement retrofit android-glide