Well if you are temping me with rep :D You just need to override onCreateDialog in an activity.
//In an Activity
private String[] mFileList;
private File mPath = new File(Enviroment.getExternalStorageDirectory() + "//yourdir//");
private String mChosenFile;
private static final String FTYPE = ".txt";
private static final int DIALOG_LOAD_FILE = 1000;
private void loadFileList(){
try{
mPath.mkdirs();
}
catch(SecurityException e){
Log.e(TAG, "unable to write on the sd card " + e.toString());
}
if(mPath.exists()){
FilenameFilter filter = new FilenameFilter(){
public boolean accept(File dir, String filename){
File sel = new File(dir, filename);
return filename.contains(FTYPE) || sel.isDirectory();
}
};
mFileList = mPath.list(filter);
}
else{
mFileList= new String[0];
}
}
protected Dialog onCreateDialog(int id){
Dialog dialog = null;
AlertDialog.Builder builder = new Builder(this);
switch(id){
case DIALOG_LOAD_FILE:
builder.setTitle("Choose your file");
if(mFileList == null){
Log.e(TAG, "Showing file picker before loading the file list");
dialog = builder.create();
return dialog;
}
builder.setItems(mFileList, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
mChosenFile = mFileList[which];
//you can do stuff with the file here too
}
});
break;
}
dialog = builder.show();
return dialog;
}
Hope this helps!