Je veux récupérer la liste des chansons dans un fragment que j'utilise pour l'interface utilisateur à onglets.Essayer d'obtenir la liste de chansons dans un fragment donne nullpointerexception
public void getSongList(){
ContentResolver musicResolver = getActivity().getContentResolver();
Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int titleColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.TITLE);
int idColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media._ID);
int artistColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.ARTIST);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
songList.add(new Song(thisId, thisTitle, thisArtist));
}
while (musicCursor.moveToNext());
}
// musicCursor.close();
}
Je reçois un NullPointerException pour songList.add(), songList est un ArrayList déjà défini. Est-ce que quelqu'un peut m'aider s'il vous plaît savoir quelle peut être la raison ?, ou s'il y a une autre façon de le faire.
En outre, le code fonctionne lorsqu'il est utilisé dans MainActivity au lieu du fragment
post-scriptum J'utilise un téléphone pour tester l'application, et j'ai des chansons dans le téléphone.
Edit: Ce n'est pas un doublon de "Qu'est-ce que NullPointerException", je sais ce que c'est correct, Mon code fonctionne quand la méthode getSongList() est utilisée dans MainActivity et je veux connaître la raison.
double possible de [? Qu'est-ce qu'un NullPointerException, et comment puis-je résoudre ce problème] (http://stackoverflow.com/questions/218384/what-is-a- nullpointerexception-and-how-do-i-fix-it) –
vous n'avez peut-être pas été initialisé votre 'arrayList' – Nikhil
Initialisez votre' ArrayList' aussi fermez votre curseur à la fin de votre 'if (musicCursor! = null && musicCursor. moveToFirst()) ', après votre boucle while. –