gpt4 book ai didi

java - 将文件夹中的文件添加到 Android 应用程序的列表中

转载 作者:行者123 更新时间:2023-12-01 10:25:25 28 4
gpt4 key购买 nike

我正在尝试在 SD 卡中创建文件列表(然后从该列表中随机获取一个文件)。
我读过教程,但没有一个起作用。

我的代码如下:

    try{

File file=new File("/sdcard");
File[] list = new File ("/sdcard").listFiles();
ArrayList<String> lista = new ArrayList<String>();
for (File f : list){
if (f.isFile()){
if (f.getName().startsWith("aa")){
lista.add(f.getName());
}
}
}
Random gen = new Random();
String s = lista.get(gen.nextInt(lista.size()-1)).toString();
wyswietl.setText(s);

}catch(NullPointerException e){
Log.e("nope", e.getMessage());
}

LogCat 显示异常。

我已经检查了每一行 - 当我尝试显示 lista.size() 时 - 它会抛出 ResourcesNotFoundException。
有趣的是,将 String 改为

String s = lista.get(1).toString()

有效 - 它向我显示了文件夹中的一个文件。
所以我的问题是:如何解决此问题并获取/sdcard 文件夹中的文件列表(以“aa”开头)?

最佳答案

如果你想在数组列表中随机选择一个项目,我相信它应该是

String s = lista.get(gen.nextInt(lista.size()));

Random.nextInt(int n) 检索 0-(n-1) 之间的随机值。请参阅Random.nextInt() documentation .

ResourceNotFound 异常我认为与未能在 R.java 内定位资源 ID 未索引越界异常有关。

TextView.setText() 带有整数值参数,将整数值解释为资源 ID,see here 。所以如果你打电话

atextView.setText(lista.size());

它将抛出 ResourceNotFoundException,因为它可能未指向正确的资源 ID。如果你想显示列表中的项目数,那么

atextView.setText(String.valueOf(lista.size()));

关于java - 将文件夹中的文件添加到 Android 应用程序的列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35378275/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com