2016-05-19 8 views
1

ListViewでリストファイルを表示する必要があるプログラムで作業しています。私はpath_of_filesでこのリストを得ました。しかし、これは私が尋ねたいものです:アイテムをクリックしたとき、どのようにユーザーがそれを開くことができますか?私はポップアップを使って、どのプログラムのユーザーがそれを開きたいのかを選択させたいと思う。 例:パスは/sdcard/file.xlsです。ユーザーがクリックすると、Microsoft Excel、Google Spreadsheetのようなアプリケーションがポップアップに表示されます(xlsを使って作業したいだけですが、それはまだOKです)。どうすればいいですか?Androidのファイルを開いて、どのプログラムを開くことができるかをユーザに選択させる

File sdCardRoot = Environment.getExternalStorageDirectory(); 
     File yourDir = new File(sdCardRoot, "directory"); 
     for (File f : yourDir.listFiles()) { 
      if (f.isFile()) { 
       String name = f.getName(); 
       Long lastModified = f.lastModified(); 
       if (name.toLowerCase().contains(".xls")) 
        fileObjList.add(new FileObj(0,name,lastModified)); 
      } 
     } 

これはファイル名とファイルパスを取得するためのコードです。

+1

このhttp://stackoverflow.com/questions/28978581/how-to-make-intent-settype-for-pdf-を参照してください。 xlsx-and-txt-file-android – void

答えて

1

まず、listViewアイテムにリスナーを設定します。そして、ハンドラのコールバックの内側にあなたが優れを開くためにlikebelow何かを行うことができます:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(path, "application/vnd.ms-excel"); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 


try { 
    startActivity(intent); 
} 
catch (ActivityNotFoundException e) { 
    Toast.makeText(context, "No Application Available to View Excel", Toast.LENGTH_SHORT).show(); 
} 
+0

それは魅力のように機能します。ありがとう。しかし、もし私がエクスプローラアプリを選んでフォルダパスを開きたいのであれば、同じことをする方法を教えてもらえますか? – TruongHieu

関連する問題