android - View files from folders -


i'm using filedialog view files/explore files. i'm having import function can import files if there not inside folder. problem filedialog doesn't show files inside folder. how can view files inside folder using filedialog? please help

what should modify code view files inside folder

package utils;  import java.io.file; import java.io.filenamefilter; import java.util.arraylist; import java.util.list;  import utils.listenerlist.firehandler; import android.app.activity; import android.app.alertdialog; import android.app.dialog; import android.content.dialoginterface; import android.content.dialoginterface.onclicklistener; import android.os.environment; import android.util.log;  public class filedialog {      private static final string parent_dir = "..";     private final string tag = getclass().getname();     private string[] filelist;     private file currentpath;      public interface fileselectedlistener {         void fileselected(file file);     }      public interface directoryselectedlistener {         void directoryselected(file directory);     }      private listenerlist<fileselectedlistener> filelistenerlist = new listenerlist<filedialog.fileselectedlistener>();     private listenerlist<directoryselectedlistener> dirlistenerlist = new listenerlist<filedialog.directoryselectedlistener>();     private final activity activity;     private boolean selectdirectoryoption;     private string fileendswith;      /**  * @param activity   * @param initialpath  */     public filedialog(activity activity, file path) {         this.activity = activity;         if (!path.exists()) path = environment.getexternalstoragedirectory();         loadfilelist(path);     }  /**  * @return file dialog  */     public dialog createfiledialog() {         dialog dialog = null;         alertdialog.builder builder = new alertdialog.builder(activity);          builder.settitle(currentpath.getpath());             if (selectdirectoryoption) {                 builder.setpositivebutton("select directory", new onclicklistener() {                      public void onclick(dialoginterface dialog, int which) {                         log.d(tag, currentpath.getpath());                         firedirectoryselectedevent(currentpath);                     }                 });             }              builder.setitems(filelist, new dialoginterface.onclicklistener() {                 public void onclick(dialoginterface dialog, int which) {                      string filechosen = filelist[which];                     file chosenfile = getchosenfile(filechosen);                          if (chosenfile.isdirectory()) {                             loadfilelist(chosenfile);                             dialog.cancel();                             dialog.dismiss();                             showdialog();                         } else firefileselectedevent(chosenfile);                 }             });         dialog = builder.show();         return dialog;     }      public void addfilelistener(fileselectedlistener listener) {         filelistenerlist.add(listener);     }      public void removefilelistener(fileselectedlistener listener) {         filelistenerlist.remove(listener);     }      public void setselectdirectoryoption(boolean selectdirectoryoption) {         this.selectdirectoryoption = selectdirectoryoption;     }      public void adddirectorylistener(directoryselectedlistener listener) {         dirlistenerlist.add(listener);     }      public void removedirectorylistener(directoryselectedlistener listener) {         dirlistenerlist.remove(listener);     }  /**  * show file dialog  */     public void showdialog() {         createfiledialog().show();     }      private void firefileselectedevent(final file file) {          filelistenerlist.fireevent(new firehandler<filedialog.fileselectedlistener>() {             public void fireevent(fileselectedlistener listener) {                 listener.fileselected(file);             }         });     }      private void firedirectoryselectedevent(final file directory) {          dirlistenerlist.fireevent(new firehandler<filedialog.directoryselectedlistener>() {             public void fireevent(directoryselectedlistener listener) {                 listener.directoryselected(directory);             }         });     }      private void loadfilelist(file path) {         this.currentpath = path;         list<string> r = new arraylist<string>();          if (path.exists()) {             if (path.getparentfile() != null) r.add(parent_dir);                  filenamefilter filter = new filenamefilter() {                      public boolean accept(file dir, string filename) {                         file sel = new file(dir, filename);                          if (!sel.canread()) return false;                         if (selectdirectoryoption) return sel.isdirectory();                         else {                              boolean endswith = fileendswith != null ? filename.tolowercase().endswith(fileendswith) : true;                             return endswith || sel.isdirectory();                         }                     }                 };                  string[] filelist1 = path.list(filter);                  (string file : filelist1) {                     r.add(file);                 }         }         filelist = (string[]) r.toarray(new string[]{});     }      private file getchosenfile(string filechosen) {         if (filechosen.equals(parent_dir)) return currentpath.getparentfile();         else return new file(currentpath, filechosen);     }  //--------------------------------------------------------------     public void setfileendswith(string fileendswith) {         this.fileendswith = fileendswith != null ? fileendswith.tolowercase() : fileendswith;     } }  class listenerlist<l> {     private list<l> listenerlist = new arraylist<l>();      public interface firehandler<l> {         void fireevent(l listener);     }      public void add(l listener) {         listenerlist.add(listener);     }      public void fireevent(firehandler<l> firehandler) {         list<l> copy = new arraylist<l>(listenerlist);         (l l : copy) {             firehandler.fireevent(l);         }     }      public void remove(l listener) {         listenerlist.remove(listener);     }      public list<l> getlistenerlist() {         return listenerlist;     } } 

here second class

public class mycsvfilereader {   public static void openddialogtoreadcsv(final activity, final context context) {   file mpath= new file(environment.getexternalstoragedirectory() + "//dir//");  filedialog filedialog = new filedialog(activitiy, mpath); filedialog.setfilesendwith(".txt");  filedialog.addfilelistener(new filedialog.fileselectedlistener() {     @override     public void fileselected(file file) {      new importcsv(context,activity,file).execute();    } }); filedialog.showdialog();  } } 

your filedialog class show folders , files if not specify filesendwith.

so, remove line filedialog.setfilesendwith(".txt"); show files inside folder.

with current code, there no way specify more 1 file extension.


Comments

Popular posts from this blog

html - Firefox flex bug applied to buttons? -

html - Missing border-right in select on Firefox -

c# - two queries in same method -