Search code examples
androidlistviewandroid-arrayadapterandroid-adapterview

How can I open the file in arrayadapter list after clicking?


I'm listing PDF files in folder. But I want them to be named as filename, instead of sdcard/mypath/files Also, I want to open them whenever I click them via PDF viewer. My code:

public class activity1 extends ListActivity {

private List<String> fileList = new ArrayList<String>();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    File root = new File("sdcard/mypath");
    ListDir(root);
}

void ListDir(File f) {
    File[] files = f.listFiles();
    fileList.clear();
    for (File file : files) {
        fileList.add(file.getPath());
    }
    ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, fileList);
    setListAdapter(directoryList);
}}

Solution

  •    public class activity1 extends ListActivity {
       ListView lv;
       private List<String> fileList = new ArrayList<String>();
    
      @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        File root = new File("sdcard/mypath");
          lv = getListView();
            ListDir(root);
           }
    
         void ListDir(File f) {
          File[] files = f.listFiles();
       fileList.clear();
    for (File file : files) {
        fileList.add(file.getName());
    }
    ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, fileList);
    setListAdapter(directoryList);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                viewPdf(fileList.get(i));
            }
        });
    }
    
     }}
    

    and open the file in pdf default pdf viewer

         private void viewPdf(String file) {
    
            File pdfFile = new File(Environment.getExternalStorageDirectory() +    "/" + "mypath"+ "/" + file);
            Uri path = Uri.fromFile(pdfFile);
    
           // Setting the intent for pdf reader
        Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
        pdfIntent.setDataAndType(path, "application/pdf");
        pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    
    
            startActivity(pdfIntent);
       }
    

    Use the above code.. Hope it helps!