[英]Android - How to add files of one extension to listview
我正在嘗試制作一個可以在手機中找到所有pdf的應用程序,但是該應用程序崩潰了。 我已經獲得在存儲上寫的權限,但沒有幫助。 這是我的代碼:
package prototype.reader.com;
import android.app.*;
import android.os.*;
import android.content.*;
import android.view.*;
import java.util.*;
import java.io.*;
import android.widget.*;
public class lst extends Activity
{
ArrayList<String> bk;
ArrayAdapter<String> ad = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, bk);
private ListView lv;
protected void onCreate(Bundle savedinstancestate){
super.onCreate(savedinstancestate);
setContentView(R.layout.listpdfs);
lv = findViewById(R.id.lpdf);
File sdCard = Environment.getExternalStorageDirectory();
recursiveFind(sdCard);
lv.setAdapter(ad);
}
public void recursiveFind(File file) {
File[] f = file.listFiles();
for (File ff : f) {
if (ff.isDirectory()) recursiveFind(file);
if (ff.isFile() && ff.getPath().endsWith(".pdf")) {
bk.add(ff.toString());
}
}
}
}
嘗試此操作,在arraylist添加數據之前將適配器聲明為錯誤,然后在下面的代碼中設置適配器
public class lst extends Activity {
ArrayList<String> bk;
ArrayAdapter<String> ad;
private ListView lv;
protected void onCreate(Bundle savedinstancestate) {
super.onCreate(savedinstancestate);
setContentView(R.layout.listpdfs);
bk = new ArrayList<>();
lv = findViewById(R.id.lpdf);
File sdCard = Environment.getExternalStorageDirectory();
recursiveFind(sdCard);
ad = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, bk);
lv.setAdapter(ad);
}
public void recursiveFind(File file) {
File[] f = file.listFiles();
for (File ff : f) {
if (ff.isFile() && ff.getPath().endsWith(".pdf")) {
bk.add(ff.toString());
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.