从 Mediastore 返回空指针
Null pointer returned from mediastore
显示方法程序
void display() {
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
ContentResolver contentResolver = getActivity().getContentResolver();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, selection, null, null);
if (cursor != null && cursor.moveToFirst()) {
int songTitle = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int songArtist = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
do {
int i = 0;
String title = cursor.getString(songTitle);
String artist = cursor.getString(songArtist);
songsList.add(title + "\n" + artist);
i++;
} while (cursor.moveToNext());
}
cursor.close();
songsList = new ArrayList<>();
songsAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, songsList);
l1.setAdapter(songsAdapter);
l1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
}
显示方法错误
2019-03-05 23:16:59.323 504-504/? E/ANDR-IOP: IOP HAL: Received pkg_name = com.noob.audioplayer pid = 0 2019-03-05 23:16:59.723 18049-18049/com.noob.audioplayer E/AndroidRuntime: FATAL EXCEPTION: main Process: com.noob.audioplayer, PID: 18049 java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.ArrayList.add(int, java.lang.Object)' on a null object reference at com.noob.audioplayer.SongsFragment.display(SongsFragment.java:137)
您正在尝试添加到尚未创建的歌曲列表。在添加之前创建歌曲列表,如下所示:
void display() {
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
ContentResolver contentResolver = getActivity().getContentResolver();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, selection, null, null);
songsList = new ArrayList<>();
if (cursor != null && cursor.moveToFirst()) {
int songTitle = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int songArtist = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
do {
int i = 0;
String title = cursor.getString(songTitle);
String artist = cursor.getString(songArtist);
songsList.add(title + "\n" + artist);
i++;
} while (cursor.moveToNext());
}
cursor.close();
songsAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, songsList);
l1.setAdapter(songsAdapter);
l1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
}
显示方法程序
void display() {
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
ContentResolver contentResolver = getActivity().getContentResolver();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, selection, null, null);
if (cursor != null && cursor.moveToFirst()) {
int songTitle = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int songArtist = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
do {
int i = 0;
String title = cursor.getString(songTitle);
String artist = cursor.getString(songArtist);
songsList.add(title + "\n" + artist);
i++;
} while (cursor.moveToNext());
}
cursor.close();
songsList = new ArrayList<>();
songsAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, songsList);
l1.setAdapter(songsAdapter);
l1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
}
显示方法错误
2019-03-05 23:16:59.323 504-504/? E/ANDR-IOP: IOP HAL: Received pkg_name = com.noob.audioplayer pid = 0 2019-03-05 23:16:59.723 18049-18049/com.noob.audioplayer E/AndroidRuntime: FATAL EXCEPTION: main Process: com.noob.audioplayer, PID: 18049 java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.ArrayList.add(int, java.lang.Object)' on a null object reference at com.noob.audioplayer.SongsFragment.display(SongsFragment.java:137)
您正在尝试添加到尚未创建的歌曲列表。在添加之前创建歌曲列表,如下所示:
void display() {
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
ContentResolver contentResolver = getActivity().getContentResolver();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, selection, null, null);
songsList = new ArrayList<>();
if (cursor != null && cursor.moveToFirst()) {
int songTitle = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int songArtist = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
do {
int i = 0;
String title = cursor.getString(songTitle);
String artist = cursor.getString(songArtist);
songsList.add(title + "\n" + artist);
i++;
} while (cursor.moveToNext());
}
cursor.close();
songsAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, songsList);
l1.setAdapter(songsAdapter);
l1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
}