来自目录的Android Spinner - 仅显示文件路径的一部分,仅显示具有特定扩展名的文件?

时间:2013-04-22 16:03:21

标签: android spinner filepath

我目前有一个使用以下内容填充的微调器;

        File sd = new File("sdcard/");
    File[] sdDirList = sd.listFiles();
    // String[] filenames = getApplicationContext().fileList();
    List<File> list = new ArrayList<File>();
    for (int i = 0; i < sdDirList.length; i++) {
        // Log.d("Filename", filenames[i]);
        list.add(sdDirList[i]);
    }
    ArrayAdapter<File> filenameAdapter = new ArrayAdapter<File>(this,
            android.R.layout.simple_dropdown_item_1line, list);
    spinSelected.setOnItemSelectedListener(this);
    spinSelected.setAdapter(filenameAdapter);
    // filename = spinSelected.toString();

}

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    filename = spinSelected.getSelectedItem().toString();
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}

但我有两件事我想对这个微调器做些什么也无法解决。第一种是仅显示扩展名为.txt的文件。因为它显示了SD卡上的所有内容,但我只对.txt。

感兴趣

此外,微调器当前显示sdcard / filename.extension的完整路径,而理想情况下我只想显示文件名 - 这可能吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您将不得不通过添加以下内容来进一步处理您的sdDirList数组:

for(int x = 0; x < sdDirList.length; x++)
{
    if(sdDirList[n].getName().endsWith(".txt"))
    {
        // add it to your array adapter
    }
}

您可以在此处查看Java文件对象文档:http://docs.oracle.com/javase/6/docs/api/java/io/File.html