Причина, по которой это не работает, заключается в том, что второй аргумент Log.v
- это String
, а не File[]
.Java строго поддерживает типы аргументов.
Обновление :
Вы можете легко преобразовать информацию, содержащуюся в объекте File
, в объект String
.Все java-объекты реализуют toString()
, который, если я правильно помню, возвращает комбинацию ClassName
и address
объекта.Однако это обычно не содержит полезной информации.Поэтому вам нужно определить преобразование самостоятельно.
Теперь преобразовать из File[]
в String
сложнее, потому что при вызове метода в массиве он работает с объектом массива, а не с членамимассив (который содержит информацию, которая, как я подозреваю, вас волнует).Поэтому вызов mp3List.toString()
вернет единственную строку, которая описывает объект массива, а не информацию, содержащуюся в массиве.
Так что вы, вероятно, захотите написать такой метод:
String fileArrayToString(File[] f){
String output = "";
String delimiter = "\n" // Can be new line \n tab \t etc...
for (int i=0; i<f.length; i++)
{
output = output + f[i].getPath() + delimiter;
}
return output;
}
А затем позвоните, сделайте ваш журнал вызовов следующим образом:
Log.v("MyTag", fileArraytoString(mp3List);
Однако это может быть трудно прочитать.
Я лично сделал бы это так:
for (int i=0; i<mp3List.legnth; i++)
Log.v("MyTag", Integer.toString(i) + ":" + mp3List[i].getPath());
Это проще, производит более чистые сообщения журнала и легче понять, что происходит как программист.