5

Tôi tự hỏi cách hiển thị tệp từ thư mục trong ListView`. Các tập tin có thể được liệt kê với:Hiển thị danh sách tệp trong ListView

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

và thêm vào ListView qua ArrayAdapter nhưng tôi không nhận được việc sử dụng các ArrayAdapter.

+0

chính xác là những gì câu hỏi của bạn? có rất nhiều câu hỏi SO về 'cách quản lý mảng arrayAdapter', 'cách tạo một listView'. Đối với bạn, tôi nghĩ bạn chỉ muốn hiển thị tên của các tệp khác nhau từ một thư mục, đến một listview. Bạn sẽ phải truyền một ArrayList của Strings tới adapter của bạn. Xem tài liệu chính thức có một số ví dụ về cách thực hiện một ListView. –

Trả lời

14

Tôi đoán bạn muốn hiển thị tên của các tập tin từ thư mục đó để bạn có thể thử này:

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(); 
} 

Các bộ chuyển đổi để sử dụng với danh sách:

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

Đối với bất cứ điều gì phức tạp hơn hiển thị tên của các tệp mà bạn phải triển khai bộ điều hợp tùy chỉnh.

+0

Làm thế nào về tên của tập tin cộng với ngày tạo/sửa đổi? – Si8

+0

@ SiKni8 Lớp 'Tệp' không may chỉ hiển thị ngày sửa đổi tệp cuối cùng chứ không phải ngày tạo. Để hiển thị rằng bên cạnh tên của tệp, bạn có thể sử dụng một bộ điều hợp tùy chỉnh hoặc một 'Hashmap' chứa dữ liệu và sử dụng một' SimpleAdapter'. – Luksprog

+0

Cảm ơn bạn đã trả lời. Tôi nghĩ rằng ngày sửa đổi đủ cho tôi. Một câu hỏi tôi có là tôi muốn hiển thị một biểu tượng tùy chỉnh theo sau là tên tập tin trên bên phải của biểu tượng và sửa đổi ngày dưới cùng bên phải của biểu tượng. Làm thế nào tôi sẽ đạt được điều đó? – Si8

1

Hoặc bạn có thể sử dụng một cái gì đó như thế này cho một sắp xếp String của filenames:

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

String[] listItems = fileDir.list(); 
Arrays.sort(listItems); 
Các vấn đề liên quan