[英]Android Studio Error : Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
[英]Android Studio Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
我真的不完全理解错误来自哪里。 有人能帮助我吗? 谢谢!
我发布了 LogCat 和下面的代码!
==================================================== ==================================================== ==================================================== ===========================================
日志猫
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
at com.musicapp.android.musicapp.MusicCustomAdapter.getItemCount(MusicCustomAdapter.java:42)
代码:
public class MusicCustomAdapter extends RecyclerView.Adapter<MusicCustomAdapter.ViewHolder>{
private ArrayList<Audio_Model> arrayListAudio;
private Context context;
public MusicCustomAdapter(ArrayList<Audio_Model> arrayListAudio, Context context) {
this.arrayListAudio = arrayListAudio;
this.context = context;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.song_display_model,parent,false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.Name_of_Song.setText(arrayListAudio.get(position).getName());
holder.Name_of_Artist.setText(arrayListAudio.get(position).getArtist());
holder.imageView_song_display_model.setImageBitmap(arrayListAudio.get(position).getSongCOmerPhoto());
}
40 @Override
41 public int getItemCount() {
42 return arrayListAudio.size();
43 }
public class ViewHolder extends RecyclerView.ViewHolder{
LinearLayout relativeLayout;
TextView Name_of_Song;
TextView Name_of_Artist;
ImageView imageView_song_display_model;
public ViewHolder(@NonNull View itemView) {
super(itemView);
relativeLayout= itemView.findViewById(R.id.relativeLayoutId);
Name_of_Song = itemView.findViewById(R.id.Name_of_Song);
Name_of_Artist = itemView.findViewById(R.id.Name_of_Artist);
imageView_song_display_model = itemView.findViewById(R.id.imageView_song_display_model);
}
}
}
问题是可以在向适配器提供项目之前调用getItemCount()
,因此如果项目列表是 null,则需要确保它返回 0。
替换此代码
@Override
public int getItemCount() {
return arrayListAudio.size();
}
和
@Override
public int getItemCount() {
return arrayListAudio == null ? 0 : arrayListAudio.size();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.