Java 碎片中的Android listView在单击时崩溃
因此,我的列表中填充了一些项目,但是每当我单击其中任何一个项目时,它就会崩溃。无论我是否有点击监听器,这种情况都会发生。我已经在网上寻找解决方案,但还没有找到导致这种情况的原因,任何帮助都将不胜感激,谢谢Java 碎片中的Android listView在单击时崩溃,java,android,listview,Java,Android,Listview,因此,我的列表中填充了一些项目,但是每当我单击其中任何一个项目时,它就会崩溃。无论我是否有点击监听器,这种情况都会发生。我已经在网上寻找解决方案,但还没有找到导致这种情况的原因,任何帮助都将不胜感激,谢谢 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { songList = getSo
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
songList = getSongList();
Collections.sort(songList);
View rootView = inflater.inflate(R.layout.songs_layout, container, false);
songListView = (ListView) rootView.findViewById(R.id.listSongs);
songListView.setAdapter(new SongAdapter(this.getActivity(), songList));
songListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getActivity(), "clicked", Toast.LENGTH_SHORT).show();
}
});
return rootView;
}
日志:
下面是getSongList方法:
public ArrayList<Song> getSongList() {
ContentResolver musicResolver = this.getActivity().getContentResolver();
Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);
ArrayList<Song> songList = new ArrayList<>();
if (musicCursor != null) {
if (musicCursor.moveToFirst()) {
do {
String songName = musicCursor
.getString(musicCursor
.getColumnIndex(MediaStore.Audio.Media.TITLE));
String path = musicCursor.getString(musicCursor
.getColumnIndex(MediaStore.Audio.Media.DATA));
String artistName = musicCursor.getString(musicCursor
.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String albumName = musicCursor.getString(musicCursor
.getColumnIndex(MediaStore.Audio.Media.ALBUM));
Song song = new Song(songName, artistName, path, albumName);
songList.add(song);
} while (musicCursor.moveToNext());
}
}
return songList;
}
stacktrace告诉我们songPickedView方法是在XML布局中指定的,但在MainActivity中找不到。因此,解决方案是在MainActivity的代码中实现它,或者从XML布局的视图中删除相应的onClick属性。您可以发布日志猫吗?除非发布日志猫输出,否则没有人能够帮助您。哎呀,logcat现在发布错误来自getSongList方法。请把它也寄出去。哦,对不起,这是个老错误。现在,我猜您在XML布局中指定了onClick事件,但没有提供java实现。从stacktrace我想说你的主要活动需要一个带有签名的方法:public void songPickedView view。非常感谢。我从另一个XML布局中复制和粘贴,这就是问题所在。谢谢