0

我找到了很多方法来做到这一点,但它们都不简单(而且我无法实现更复杂的方法,所以我正在寻找更简单的解决方案)。我想用我用来从应用程序保存一些 png 的目录中的所有 png 文件的名称填充我的 ArrayAdapter。这个很棒:http://www.dreamincode.net/forums/topic/190013-creating-simple-file-chooser/ 但并不容易。我相信有一种更简单的方法,我只是找不到它(我真的做了功课,并且一直在寻找它)。我假设像 File.listFiles() 这样的东西可以工作,我只是不知道怎么做。

我的代码:

    public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);

    String[] values = new String[] ;

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);
    getListView().setBackgroundDrawable(getResources().getDrawable(R.drawable.diver));
}

@Override

protected void onListItemClick(ListView list, View v, int position, long id) {
    list.setBackgroundDrawable(getResources().getDrawable(R.drawable.diver));
    String item = (String) getListAdapter().getItem(position);

    setContentView(R.layout.table);
    myWebView = (WebView)findViewById(R.id.myWebView);
    myWebView.setInitialScale(50);
    myWebView.getSettings().setBuiltInZoomControls(true);
    myWebView.loadUrl(Environment.getExternalStorageDirectory()+ File.separator + "DivePlanner" + File.separator + item);


}

我需要用目录 /sdcard/DivePlanner/ 中所有 png 文件的名称填充 values[]。如果有人知道任何简单的方法来做到这一点,非常感谢!

4

2 回答 2

2

是的,您应该使用 File.listFiles() 方法从所需文件夹中获取所有文件。当您有一个文件数组时,您应该简单地遍历它,并从每个文件中检索其名称。

如果您只想要 .png 文件,请检查 java FileFilter 类及其用法

为了您的方便,请看这里:

http://www.exampledepot.com/egs/java.io/GetFiles.html

于 2012-05-24T14:13:56.237 回答
0

你可以使用这样的东西:

final File directory = new File(path);
if(!directory.exists() || !directory.isDirectory()){
    //do something
}
final Collection<String> pngFilenames = new HashSet<String>();
for(final String filename : directory.list()){
    if(filename.endsWith(".png")){
        pngFilenames.add(filename);
    }
}
final String[] values = (String[])pngFilenames.toArray(new String[pngFilenames.size()]);
于 2012-05-24T14:39:27.603 回答