繁体   English   中英

Android-如何将一个扩展名的文件添加到ListView

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM