open all file list in a directory and open corresponding file viewer

If your app needs all your sd card file list & want to open corresponding application like Music player for .mp3 file, Gallery for .jpeg file, then you can use below activity. So lets go.
 import java.io.File;  
 import java.io.IOException;  
 import java.util.ArrayList;  
 import android.app.Activity;  
 import android.content.Context;  
 import android.content.Intent;  
 import android.net.Uri;  
 import android.os.Bundle;  
 import android.os.Environment;  
 import android.view.View;  
 import android.widget.AdapterView;  
 import android.widget.AdapterView.OnItemClickListener;  
 import android.widget.ArrayAdapter;  
 import android.widget.LinearLayout;  
 import android.widget.ListView;  
 public class OpenFolderActivity extends Activity {  
      private File root;  
      private ArrayList<File> fileList = new ArrayList<File>();  
      private LinearLayout view;  
      ListView file_listView;  
      // Folder Directory  
      public static String FOLDER_PATH = "/sdcard/NCTB/";  
      @Override  
      protected void onCreate(Bundle savedInstanceState) {  
           super.onCreate(savedInstanceState);  
           setContentView(R.layout.actiivty_file_list);  
           // give your folder path  
           // root = new File(FOLDER_PATH);  
           // getting SDcard root path  
           root = new File(Environment.getExternalStorageDirectory()  
                     .getAbsolutePath());  
           file_listView = (ListView) findViewById(R.id.file_listView);  
           file_listView  
                     .setAdapter(new ArrayAdapter<File>(getApplicationContext(),  
                               R.layout.list_item_file, getfile(root)));  
           file_listView.setOnItemClickListener(new OnItemClickListener() {  
                @Override  
                public void onItemClick(AdapterView<?> arg0, View arg1,  
                          int postion, long arg3) {  
                     File myFile = new File(fileList.get(postion).getAbsolutePath());  
                     try {  
                          openFile(getApplicationContext(), myFile);  
                     } catch (IOException e) {  
                          // TODO Auto-generated catch block  
                          e.printStackTrace();  
                     }  
                }  
           });  
      }  
      public ArrayList<File> getfile(File dir) {  
           File listFile[] = dir.listFiles();  
           if (listFile != null && listFile.length > 0) {  
                for (int i = 0; i < listFile.length; i++) {  
                     if (listFile[i].isDirectory()) {  
                          fileList.add(listFile[i]);  
                          getfile(listFile[i]);  
                     } else {  
                          // add more file type what you can  
                          if (listFile[i].getName().endsWith(".pdf")  
                                    || listFile[i].getName().endsWith(".jpg")  
                                    || listFile[i].getName().endsWith(".jpeg")  
                                    || listFile[i].getName().endsWith(".gif"))  
                          {  
                               fileList.add(listFile[i]);  
                          }  
                     }  
                }  
           }  
           return fileList;  
      }  
      public static void openFile(Context context, File url) throws IOException {  
           // Create URI  
           File file = url;  
           Uri uri = Uri.fromFile(file);  
           Intent intent = new Intent(Intent.ACTION_VIEW);  
           // Check what kind of file you are trying to open, by comparing the url  
           // with extensions.  
           // When the if condition is matched, plugin sets the correct intent  
           // (mime) type,  
           // so Android knew what application to use to open the file  
           if (url.toString().contains(".doc") || url.toString().contains(".docx")) {  
                // Word document  
                intent.setDataAndType(uri, "application/msword");  
           } else if (url.toString().contains(".pdf")) {  
                // PDF file  
                intent.setDataAndType(uri, "application/pdf");  
           } else if (url.toString().contains(".ppt")  
                     || url.toString().contains(".pptx")) {  
                // Powerpoint file  
                intent.setDataAndType(uri, "application/vnd.ms-powerpoint");  
           } else if (url.toString().contains(".xls")  
                     || url.toString().contains(".xlsx")) {  
                // Excel file  
                intent.setDataAndType(uri, "application/vnd.ms-excel");  
           } else if (url.toString().contains(".zip")  
                     || url.toString().contains(".rar")) {  
               // ZIP Files
  intent.setDataAndType(uri, "application/zip");

           } else if (url.toString().contains(".rtf")) {  
                // RTF file  
                intent.setDataAndType(uri, "application/rtf");  
           } else if (url.toString().contains(".wav")  
                     || url.toString().contains(".mp3")) {  
                // WAV audio file  
                intent.setDataAndType(uri, "audio/x-wav");  
           } else if (url.toString().contains(".gif")) {  
                // GIF file  
                intent.setDataAndType(uri, "image/gif");  
           } else if (url.toString().contains(".jpg")  
                     || url.toString().contains(".jpeg")  
                     || url.toString().contains(".png")) {  
                // JPG file  
                intent.setDataAndType(uri, "image/jpeg");  
           } else if (url.toString().contains(".txt")) {  
                // Text file  
                intent.setDataAndType(uri, "text/plain");  
           } else if (url.toString().contains(".3gp")  
                     || url.toString().contains(".mpg")  
                     || url.toString().contains(".mpeg")  
                     || url.toString().contains(".mpe")  
                     || url.toString().contains(".mp4")  
                     || url.toString().contains(".avi")) {  
                // Video files  
                intent.setDataAndType(uri, "video/*");  
           } else {  
                // if you want you can also define the intent type for any other  
                // file  
                // additionally use else clause below, to manage other unknown  
                // extensions  
                // in this case, Android will show all applications installed on the  
                // device  
                // so you can choose which application to use  
                intent.setDataAndType(uri, "*/*");  
           }  
           intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
           context.startActivity(intent);  
      }  
 }  
Layout : actiivty_file_list.xml
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:tools="http://schemas.android.com/tools"  
   android:id="@+id/scrollView"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent" >  
   <ListView  
     android:id="@+id/file_listView"  
     android:layout_width="match_parent"  
     android:layout_height="wrap_content" >  
   </ListView>  
 </RelativeLayout>  
Custom list view item design : >>>
 <?xml version="1.0" encoding="utf-8"?>  
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent"  
   android:padding="10dp"  
   android:textSize="20sp" >  
 </TextView>