[英]java.lang.NullPointerException: Error while using RecyclerView.Widget
我正在尝试将音频文件列表添加到我的片段中。 我还将布局管理器设置为回收站视图。 我还向 gradle 构建添加了依赖项
这是错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View androidx.recyclerview.widget.RecyclerView.findViewById(int)' on a null object reference
at com.example.musicplayer.AllSongs.onCreateView(AllSongs.java:35)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
我正在尝试在我的所有歌曲片段中获取所有歌曲。 这是我的代码,它显示错误:
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
recyclerView = recyclerView.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
if (!(musicFiles.size() < 1))
{
musicAdapter = new MusicAdapter(getContext(),musicFiles);
recyclerView.setAdapter(musicAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
}
return inflater.inflate(R.layout.fragment_all_songs_tab, container, false);
}
尝试
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_all_songs_tab, container, false);
recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
musicFiles = new ArrayList();
if (!(musicFiles.size() < 1))
{
musicAdapter = new MusicAdapter(getContext(),musicFiles);
recyclerView.setAdapter(musicAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
}
return view;
}
您的应用程序在下一行崩溃
recyclerView.findViewById(R.id.recyclerView);
按照下面做
onCreateView(.....){
View v = inflater.inflate(R.layout.fragment_all_songs_tab, container, false);
recyclerView = v.findViewById(R.id.recyclerView);
....
....
return v ;
}
错误已修复这里是解决方案
我做了什么:
早些时候我返回onCreateView
function 但是在View
我的代码被修复后,音频文件列表显示
View view = inflater.inflate(R.layout.fragment_all_songs_tab, container, false);
recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
musicAdapter = new MusicAdapter(getContext(), musicFiles);
recyclerView.setAdapter(musicAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false));
musicAdapter.notifyDataSetChanged();
return view;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.