Я был на пути к созданию собственного музыкального плеера в андроиде. Я хочу загрузить все музыкальные файлы из галереи в свою папку, чтобы добавить некоторые из них в свои избранные. Но проблема в том, что, когда я получаю файлы из галереи, она делает повторение. то есть. список отображается трижды или четыре раза в моей папке. Можете ли вы проверить, есть ли какая-либо логическая ошибка? Спасибо :)Загрузка музыкальных файлов из галереи в мою папку в android
public ArrayList<String> getFromSdcard(String folderName)
{
ArrayList<String> audioFileLists = new ArrayList<String>();
File file= new File(folderName);
if (file.isDirectory())
{
File[] listFile = file.listFiles();//get list of files
for (int i = 0; i < listFile.length; i++)
{
String path = listFile[i].getAbsolutePath();
audioFileLists.add(path);//add path of files to array list
}
}
return audioFileLists;
}
private class MusicAdapter extends BaseAdapter {
private ArrayList<String> audioFile;
public MusicAdapter(ArrayList<String> audioFiles) {
audioFile = audioFiles;
}
public int getCount() {
return audioFile.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
System.gc();
LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.musiclist, null);
TextView albumName = (TextView) convertView.findViewById(R.id.albumName);
String fileName = audioFile.get(position);
albumName.setText(fileName.substring(fileName.lastIndexOf("/")+1));
return convertView;
}
}
Вот мой логарифм после попытки с ViewHold.
11-12 11:14:26.043: I/Ads(513): Request scenario: Online server request.
11-12 11:14:27.313: W/webcore(513): Can't get the viewWidth after the first layout
11-12 11:14:27.413: D/webviewglue(513): nativeDestroy view: 0x3053b8
11-12 11:14:27.423: I/Ads(513): onReceiveAd()
11-12 11:14:27.523: D/webviewglue(513): nativeDestroy view: 0x32d048
11-12 11:15:05.163: D/dalvikvm(513): GC_EXPLICIT freed 6162 objects/466624 bytes in 111ms
11-12 11:28:53.443: D/dalvikvm(513): GC_FOR_MALLOC freed 20535 objects/582840 bytes in 124ms
11-12 11:42:38.213: D/dalvikvm(513): GC_FOR_MALLOC freed 20821 objects/523728 bytes in 117ms
11-12 11:56:20.473: D/dalvikvm(513): GC_FOR_MALLOC freed 20837 objects/524536 bytes in 129ms
@Tonny: используйте Log заявление, чтобы узнать общее количество файлов, как вы извлекли в вашем getFromSdCard(), а также пожалуйста, вы можете разместить так, как вы инициализировать baseAdapter объект. –
private MusicAdapter musicAdapter = null; musicAdapter = новый MusicAdapter (список файлов); folderList.setAdapter (musicAdapter); – Tony
Вы проверили, что ваш ArrayList содержит любые повторяющиеся значения, я имею в виду, что в списках файлов есть дубликат?, Пожалуйста, подтвердите сопряжение? –