最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 中讀取SD卡文件時拋出NullPointerException錯誤解決辦法

 更新時間:2017年05月25日 14:30:13   投稿:lqh  
這篇文章主要介紹了Android 中讀取SD卡文件時拋出NullPointerException錯誤解決辦法的相關資料,需要的朋友可以參考下

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,最后發(fā)現(xiàn)是沒有添加讀取SD卡的權限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

獲取SD卡路徑:”/mnt/sdcard/” “/storage/sdcard/”

官方推薦:

Environment.getExternalStorageDirectory.getPath();

該方法獲取的路徑最后沒有'/'

"/mnt/sdcard"  
"/storage/sdcard"

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

最新評論

呼伦贝尔市| 汤阴县| 乌兰察布市| 陆良县| 嘉荫县| 西贡区| 邵阳市| 宁晋县| 常熟市| 安乡县| 施秉县| 平罗县| 北宁市| 晋江市| 桐柏县| 海口市| 红原县| 苍梧县| 安化县| 汉寿县| 芦山县| 惠州市| 寿光市| 永新县| 长葛市| 五寨县| 堆龙德庆县| 武宣县| 永康市| 景宁| 合水县| 宁城县| 西峡县| 大姚县| 娄底市| 东乡县| 伊宁市| 康定县| 漳平市| 贵州省| 台安县|