乡村爱情第六部,贵州电视台非常完美,抚宁房屋出租
android 中读取sd卡文件时抛出nullpointerexception错误解决办法
相关源码:
package com.example.musicplayer; import java.io.file; import java.util.arraylist; import java.util.list; import android.app.activity; import android.os.bundle; import android.os.environment; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.listview; import android.widget.textview; import android.widget.toast; public class mainactivity extends activity { private listview listview; private final string path = "/storage/sdcard/mp3/"; private list<string> musiclist; private viewholder viewholder; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); listview = (listview) findviewbyid(r.id.lv_music); toast.maketext(getapplicationcontext(), path, toast.length_short).show(); initmusic(); } private void initmusic() { file file = new file(path); file[] files = file.listfiles(); musiclist = new arraylist<string>(); for (file f : files) { if (f.getname().endswith(".mp3")) { musiclist.add(f.getabsolutepath()); } } listview.setadapter(new musiclistadapter()); } private class musiclistadapter extends baseadapter{ @override public int getcount() { return musiclist.size(); } @override public view getview(int position, view convertview, viewgroup parent) { view view = null; if(convertview == null){ view = view.inflate(getapplicationcontext(), r.layout.activity_music_item, null); viewholder = new viewholder(); viewholder.musicname = (textview) view.findviewbyid(r.id.tv_music_name); } else { view = convertview; } string path = musiclist.get(position); viewholder.musicname.settext(path.substring(path.lastindexof("/") + 1)); return view; } @override public object getitem(int position) { // todo auto-generated method stub return null; } @override public long getitemid(int position) { // todo auto-generated method stub return 0; } } }
获取sd卡中mp3文件夹下的文件信息时在foreach时抛出nullpointerexception,最后发现是没有添加读取sd卡的权限
<uses-permission android:name="android.permission.read_external_storage"/>
获取sd卡路径:”/mnt/sdcard/” “/storage/sdcard/”
官方推荐:
environment.getexternalstoragedirectory.getpath();
该方法获取的路径最后没有'/'
"/mnt/sdcard" "/storage/sdcard"
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论