欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ā)現是沒有添加讀取SD卡的權限

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

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

官方推薦:

Environment.getExternalStorageDirectory.getPath();

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

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

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

相關文章

  • 創(chuàng)建Android守護進程實例(底層服務)

    創(chuàng)建Android守護進程實例(底層服務)

    這篇文章主要介紹了創(chuàng)建Android守護進程實例(底層服務),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android AlertDialog實現分享對話框/退出對話框/下載對話框

    Android AlertDialog實現分享對話框/退出對話框/下載對話框

    這篇文章主要介紹了Android AlertDialog實現分享對話框/退出對話框/下載對話框的相關資料,需要的朋友可以參考下
    2016-04-04
  • Android實現擴展Menu的方法

    Android實現擴展Menu的方法

    這篇文章主要介紹了Android實現擴展Menu的方法,涉及Android操作menu菜單的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Android開發(fā)實現NFC刷卡讀取的兩種方式

    Android開發(fā)實現NFC刷卡讀取的兩種方式

    這篇文章主要為大家詳細介紹了Android開發(fā)中實現NFC刷卡讀取的兩種方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Android獲取本機各種類型文件的方法

    Android獲取本機各種類型文件的方法

    這篇文章主要為大家詳細介紹了Android獲取本機各種類型文件的方法,包括音樂、視頻、圖片、文檔等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android實現簡單水波紋效果

    Android實現簡單水波紋效果

    這篇文章主要為大家詳細介紹了Android實現簡單水波紋效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android開發(fā)之DiffUtil的使用詳解

    Android開發(fā)之DiffUtil的使用詳解

    這篇文章文給大家介紹了DiffUtil的使用,相信大家每位Android開發(fā)者們都知道谷歌最近更新了Support Library 24.2.0,而DiffUtil就是在這個版本添加的一個工具類。下面就跟著小編一起來看看,有需要的可以參考借鑒。
    2016-09-09
  • Flutter 快速實現聊天會話列表效果示例詳解

    Flutter 快速實現聊天會話列表效果示例詳解

    這篇文章主要為大家介紹了Flutter 快速實現聊天會話列表效果示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • loadavg數據異常引發(fā)問題起源分析

    loadavg數據異常引發(fā)問題起源分析

    這篇文章主要為大家介紹了loadavg數據異常引發(fā)問題起源分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Android okhttp3.0忽略https證書的方法

    Android okhttp3.0忽略https證書的方法

    這篇文章主要介紹了 Android okhttp3.0忽略https證書的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論