Android Studio试图调用虚拟方法';int java.util.ArrayList.size()';关于空对象引用
我真的不完全明白错误是从哪里来的。有人能帮我吗?谢谢大家! 我把日志和代码贴在下面 ================================================================================================================================================================================================ LogCatAndroid Studio试图调用虚拟方法';int java.util.ArrayList.size()';关于空对象引用,java,android,visual-studio,Java,Android,Visual Studio,我真的不完全明白错误是从哪里来的。有人能帮我吗?谢谢大家! 我把日志和代码贴在下面 ================================================================================================================================================================================================ LogCat java.lan
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)
代码:
公共类MusicCustomAdapter扩展了RecyclerView.Adapter{
私人ArrayList arrayListAudio;
私人语境;
公共音乐适配器(ArrayList arrayListAudio,上下文){
this.arrayListAudio=arrayListAudio;
this.context=上下文;
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
View=LayoutFlater.from(parent.getContext()).flate(R.layout.song\u display\u model,parent,false);
ViewHolder=新的ViewHolder(视图);
报税表持有人;
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,int位置){
_Song.setText(arrayListAudio.get(position.getName())的holder.Name_;
holder.Name\u of_Artist.setText(arrayListAudio.get(position.getArtist());
holder.imageView\u song\u display\u model.setImageBitmap(arrayListAudio.get(position.getSongCOmerPhoto());
}
40@Override
41公共int getItemCount(){
42返回arrayListAudio.size();
43 }
公共类ViewHolder扩展了RecyclerView.ViewHolder{
线性布局相对长度;
text查看歌曲的名称;
TextView艺术家的姓名;
ImageView ImageView_宋_显示_模型;
公共视图持有者(@NonNull View itemView){
超级(项目视图);
relativeLayout=itemView.findViewById(R.id.relativeLayoutId);
歌曲名称=itemviewbyd(歌曲名称的R.id.Name);
艺术家的姓名=itemView.findViewById(艺术家的R.id.Name);
imageView\u song\u display\u model=itemView.findViewById(R.id.imageView\u song\u display\u model);
}
}
}
问题是在向适配器提供项之前可以调用
getItemCount()
,因此,如果项列表为空,则需要确保它返回0
替换此代码
@Override
public int getItemCount() {
return arrayListAudio.size();
}
与
@Override
public int getItemCount() {
return arrayListAudio.size();
}
@Override
public int getItemCount() {
return arrayListAudio == null ? 0 : arrayListAudio.size();
}