2017-01-16 38 views
0

我在应用程序中保存了一些文件,现在我想在我的listview上显示以.txt结尾的文件,而不是全部。你可以帮我吗?如何在listview android内部存储上显示特定文件?

You can see all files in my screenshot, I want to show just .txt ones

这是我如何生成的列表视图我:

void ShowSavedFiles(){ 
    SavedFiles = fileList(); 

    ArrayAdapter adapter = new ArrayAdapter<String>(this, 
            android.R.layout.simple_list_item_1, 
            SavedFiles); 

    listSavedFiles.setAdapter(adapter); 
} 
+2

字符串值,你可以提供解决方案的源代码,请? – Grimmy

回答

0

下面是解:

void ShowSavedFiles(){ArrayList<String> filteredList = new ArrayList<String>(); 
SavedFiles = fileList(); 

for(String str: SavedFiles) { 
    if (str.trim().contains("_cred.txt")) { 
        filteredList.add(str.trim());} 
    } 
      ArrayAdapter adapter 
       = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, 
       filteredList); 

     listSavedFiles.setAdapter(adapter);} 
0

您需要修改fileList方法过滤掉其他文件,因为它看起来像您的适配器获得的唯一数据。

+0

我试过这个: String s = givenName +“.txt”; 对(INT I = 0;我 Hzv

0

你必须创建具有以txt结尾的文件名只有一个列表,如果你使用Java 8,你可以做这样的:

SavedFiles = fileList().stream()  // Convert list to stream 
    .filter(fileName -> fileName.endsWith(".txt")) // Filters filename to only keep ones that ends with ".txt" 
    .collect(Collectors.toList()); // Then collect to a list 
0

试试这个:

搜索特定的价值观和使用添加它们

public void search(){ 

    List <String> listClone = new ArrayList<String>(); 
      for (String string : SavedFiles) { 
       if(string.matches(".txt")){ 
        listClone.add(string); 
       } 
      } 
    } 

更新listviewupdatedData(listClone)

public void updatedData(List itemsArrayList) { 

    adapter .clear(); 

    if (itemsArrayList != null){ 

     for (Object object : itemsArrayList) { 

      adapter .insert(object, mAdapter.getCount()); 
     } 
    } 

    adapter .notifyDataSetChanged(); 
} 
0

列出所有特定类型的文件的文件在机器人从外部存储到ListView的窗口小部件。

ArrayList<String> filenames; 
ArrayAdapter<String> adapter; 

// onCreate method 

filelist = findViewById(R.id.fileList); //filelist is ListView widget 
    filenames = new ArrayList<>(); 
    getFiles();   // files funtions 
    adapter=new ArrayAdapter<>(YourActivity.this, android.R.layout.simple_list_item_1, filenames); 
    filelist.setAdapter(adapter); 

// getFiles() is method for getting and filtering all doccuments files from external storage 

private void getFiles() { 

    File path = Environment.getExternalStorageDirectory(); 
    String filename ; 
    Queue<File> files = new LinkedList<>();   //Linklist 

    files.addAll(Arrays.asList(path.listFiles())); //adding all files of path in linklist 

    while (!files.isEmpty()){ 
     File file = files.remove(); 
     if (file.isDirectory()){ 
      files.addAll(Arrays.asList(file.listFiles())); 


     } 
     else if (file.getName().endsWith(".doc")||file.getName().endsWith(".xls")||file.getName().endsWith(".ppt")){ //filtering files 
      filename = file.getName();    // according to their extension 
      filenames.add(filename);    //filenames is string ListArray 

     } 



    } 


} 

只是改变像.doc.xls.your_file_extension

相关问题