Android打开文件,让用户select哪个程序可以打开它

我正在处理一个需要在ListView中显示列表文件的程序。 我用path_of_files得到了这个列表。 但是,这是我想问:当我点击一个项目,用户如何打开它? 我想我想要一个popup让用户select哪个程序用户想要打开它。 例如:我有一个path:/sdcard/file.xls。 当用户点击时,一个popup窗口显示一些应用程序,如:Microsoft Excel,谷歌电子表格(我只想用xls工作 – 它只能使用它,仍然可以)。 我该怎么做?

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)); } } 

这是我的代码来获取文件名和文件path。

首先,设置一个监听器到你的listView Items。 在处理程序callback里面,你可以做下面的事情打开excels:

 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(); }