保存媒体播放器创建方法的Util类:
{
private static ArrayList<Song> allSongs;
private static ArrayList<Song> favouriteSongs;
private static int id = 0;
Context context;
public Util(Context context) {
this.context = context;
}
public Util() {
if (allSongs == null){
allSongs = new ArrayList<>();
initializingAllSongs();
}
if (favouriteSongs == null){
favouriteSongs = new ArrayList<>();
}
}
public static ArrayList<Song> getAllSongs() {
return allSongs;
}
public static ArrayList<Song> getFavouriteSongs() {
return favouriteSongs;
}
public void addToFavSongs(Song song){
favouriteSongs.add(song);
}
public void removeFromFavSongs(Song song){
favouriteSongs.remove(song);
}
private void initializingAllSongs(){
int songNumber = 0;
String songTitle = "";
String songLyrics = " ";
MediaPlayer audioPlayer ;
id++;
songNumber = 1;
songTitle = "Sample song Title ";
songLyrics = "Sample lyrics Sample lyrics \n" +
" Sample lyrics Sample lyrics \n" +
"Sample lyrics Sample lyrics \n" +
" Sample lyrics Sample lyrics";
audioPlayer = new MediaPlayer();
audioPlayer = MediaPlayer.create(context.getApplicationContext(), R.raw.audio);
allSongs.add(new Song(id, songNumber, songTitle, songLyrics, audioPlayer ));
id++;
songNumber = 2;
songTitle = "Sample song Title ";
songLyrics = "Sample lyrics Sample lyrics \n" +
" Sample lyrics Sample lyrics \n" +
"Sample lyrics Sample lyrics \n" +
" Sample lyrics Sample lyrics";
audioPlayer = new MediaPlayer();
audioPlayer = MediaPlayer.create(context.getApplicationContext(), R.raw.audi);
allSongs.add(new Song(id, songNumber, songTitle, songLyrics, audioPlayer ));
}
}
MainActivity (部分):
recyclerView = findViewById(R.id.songsRecView);
SongRecViewAdapter adapter = new SongRecViewAdapter(this);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
Util util = new Util();
ArrayList<Song> allSongs = new ArrayList<>();
allSongs = util.getAllSongs();
adapter.setSongs(allSongs);
Logcat:起因: java.lang.NullPointerException:试图在位于com.example.mrfpc.Util.initializingAllSongs(Util.java:62)的空对象引用上调用虚方法的android.content.Context com.example.mrfpc.Util。(Util.java:22)位于com.example.mrfpc.MainActivity.onCreate(MainActivity.java:36)
发布于 2020-10-12 07:45:31
这是因为你没有在构造函数中初始化Context
,也没有在你的activity中初始化。
在第二个构造函数中添加Context
,并删除具有它的构造函数,在那里初始化它,它将不再抛出它。
https://stackoverflow.com/questions/64308346
复制相似问题