对不起,我是一个新手,在尝试从手机的内部存储中检索所有 mp3 文件时遇到了一些问题。不知道为什么,但我无法检索任何文件,即 ArrayList 正在获取空值
这是我来自 PlaylistActivity 的代码,这里是我检索 mp3 文件的地方:
private static final int RC_READ = 1;
private RecyclerView mRecycler;
private ArrayList<File> mSongs;
private String[] mSongNames;
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_playlist);
mRecycler=(RecyclerView) findViewById(R.id.recyclerView);
mRecycler.setLayoutManager(new LinearLayoutManager(this));
mRecycler.setHasFixedSize(true);
mSongs=new ArrayList<>();
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, RC_READ );
}
else {
getSongsPlayList(); }
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode== RC_READ && grantResults[0]== PackageManager.PERMISSION_GRANTED){
getSongsPlayList();
}
}
private void getSongsPlayList(){
Log.d("Music","getSongsPlayList()");
mSongs = findSongs(Environment.getExternalStorageDirectory().getAbsolutePath());
if (mSongs != null) {
mSongNames = new String[mSongs.size()];
for (int i = 0; i < mSongs.size(); i++) {
mSongNames[i] = mSongs.get(i).getName().replace(".mp3", "").replace(".wav", "");
Log.d("Music","Song name:"+mSongNames[i]);
}
} else {
Log.d("Music", "Null");
mSongNames = new String[1];
mSongNames[0] = "Star Boy";
}
mAdapter = new MyAdapter(mSongNames, getApplicationContext());
mRecycler.setAdapter(mAdapter);
}
DIEA
相关分类