我正在为我正在尝试创建的 mp3 播放器编写代码。我只是在项目的开始,希望能够读取和显示我 sd 卡上的所有 mp3 文件。我不想使用直接路径方法。现在我编写的这段代码为我收集了所有的 mp3 文件,但唯一的问题是它没有为我在屏幕上查看它们。该应用程序显示一个空白屏幕,但不会崩溃。
我从导师那里得到了帮助和建议,并被告知使用 ArrayAdapter 来查看结果,但我找不到任何帮助来展示它。如果有人可以请帮忙,那就太好了。
这是我在 onCreate 方法中的代码;
ListView list;
Cursor cursor;
int columnIndex;
int count;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//list = (ListView) findViewById(R.id.list);
//A array is created that display the 3 fields
String[] displayMusic = {MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.TITLE};
//the cursor displays all of the audio in the sd card, just to limit to .mp3 files now
cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, displayMusic, null, null, null);
//this is the loop that gather all of the .mp3 files
int pos = 1;
ArrayList<String> listOfMp3s = new ArrayList<String>();
while (cursor.moveToNext())
{
if(cursor.getString(pos).endsWith("mp3"))
{
listOfMp3s.add(cursor.getString(pos));
}
}
String[] displayFields = new String[] {MediaStore.Audio.Media.DISPLAY_NAME};
int[] displayViews = new int[] {android.R.id.text1};
//setListAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, displayFields, displayViews);
ArrayAdapter<String> musicAdapter = new ArrayAdapter<String>(getBaseContext(), R.layout.list_songs, listOfMp3s);
//list.setAdapter(listOfMp3s);
}