У меня возникло расстраивающее время извлечения файлов METADATA_KEY_TITLE
из .mp3 в arraylist и arrayadaper для моего списка ListView для отображения только названий песен и в случаях с исключительным случаем, когда заголовок имеет значение null, элемент title возвращает имя файла ... Вот мой код:Ошибка в Mediametadata в ArrayAdapter
final ArrayList<String> myTitu = findTitles(Environment.getExternalStorageDirectory());
metaTitu = new String[myTitu.size()];
for(int j = 0; j<myTitu.size(); j++){
metaTitu[j] = myTitu.get(j);
}
ArrayAdapter<String> adp = new ArrayAdapter<String>(getContext(),R.layout.songslist_content,R.id.name_of_song_tab, metaTitu);
lv.setAdapter(adp);
// -------------------------------------------------------------------------------
public ArrayList<String> findTitles(File root) {
ArrayList<String> all = new ArrayList<String>();
File[] files = root.listFiles();
String names;
for (File singlet : files) {
if (singlet.isDirectory() && !singlet.isHidden()) {
all.addAll(findTitles(singlet));
} else {
if (singlet.getName().endsWith(".mp3")){
try{
metameta = new MediaMetadataRetriever();
metameta.setDataSource(singlet.getPath());
names = metameta.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
all.add(names);
} catch (Exception e){
names = singlet.getName().toString();
all.add(names);
}
}
}
}
return all;
}
(. Ps пожалуйста, голые со мной, я только новичок в Android)
Пожалуйста, обратите внимание, что все это в фрагменте, а также отладчик жалуется на
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toString()' on a null object reference
без указания какой-либо конкретной линии
Не работает до сих пор. Я получаю ту же ошибку в отладчике, говоря, что java.string.tostring имеет значение null –
Я пытаюсь экспериментировать с другими методами, связывающими данные массива с картой, затем передаю его в SimpleAdapter –
Передача его в SimpleAdapter вместо ArrayAdapter .... надеюсь, это работает –