5

Zastanawiam się, jak wyświetlić pliki z katalogu w liście ListView. Pliki mogą być wymienione z:Pokazuję listę plików w ListView

File dir = new File(dirPath); 
File[] filelist = dir.listFiles(); 

i dodany do ListView poprzez ArrayAdapter ale nie rozumiem, jak posługiwać się ArrayAdapter.

+0

co jest dokładnie na Twoje pytanie? jest mnóstwo pytań dotyczących SO "jak zarządzać arrayAdapter", "jak utworzyć listęViewView". Uważam, że chcesz wyświetlić tylko nazwę różnych plików z folderu, do listy. Będziesz musiał przekazać ArrayList of Strings do adaptera. Spójrz na oficjalną dokumentację jest kilka przykładów, jak zrobić ListView. –

Odpowiedz

14

Chyba chcesz pokazać nazwy plików z tego katalogu, więc można spróbować to:

File dir = new File(dirPath); 
File[] filelist = dir.listFiles(); 
String[] theNamesOfFiles = new String[filelist.length]; 
for (int i = 0; i < theNamesOfFiles.length; i++) { 
    theNamesOfFiles[i] = filelist[i].getName(); 
} 

Adapter do korzystania z listy:

new ArrayAdapter<String>(this, android.R.layout.simple_list_item, theNamesOfFiles); 

na cokolwiek bardziej skomplikowanego niż pokazywanie nazw plików, które mają zaimplementować niestandardową kartę.

+0

Co z nazwami plików oraz datą utworzenia/modyfikacji? – Si8

+0

@ SiKni8 Klasa "File" niestety ujawnia tylko datę ostatniej modyfikacji pliku, a nie datę utworzenia. Aby pokazać, że oprócz nazwy pliku można użyć niestandardowej karty lub 'Hashmap' zawierającej dane i użyć' SimpleAdapter'. – Luksprog

+0

Dzięki za odpowiedź. Myślę, że data modyfikacji powinna wystarczyć dla mnie. Mam jedno pytanie: chcę wyświetlić niestandardową ikonę, a następnie nazwę pliku w prawym górnym rogu ikony i zmienić datę u dołu po prawej stronie ikony. Jak to osiągnąć? – Si8

1

Lub można użyć coś takiego dla sortowych String z filenames:

File dataDirectory = Environment.getDataDirectory(); 
File fileDir = new File(dataDirectory, "data/com.yourapp.app/files"); 

String[] listItems = fileDir.list(); 
Arrays.sort(listItems);