当前位置:首页 > 技术心得 > 正文内容

Android调用系统自带的文件管理器进行文件选择

xjtudll10年前 (2016-11-29)技术心得29430

参考资料:

http://blog.csdn.net/zqchn/article/details/8770913

http://www.xuebuyuan.com/929105.html

调用系统自带的文件管理器来选择文件

 

 
 
 
private void showChooser() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(intent,EX_FILE_PICKER_RESULT);
} catch (android.content.ActivityNotFoundException ex) {
//Toast.makeText(this, "亲,木有文件管理器啊-_-!!", Toast.LENGTH_SHORT).show();
}

}

在catch,我们可以做更多的操作,比如会跳转到一个下载文件管理器的页面或者等等。

 

 

 

对于返回的数据怎么处理呢。在onActivityResult里处理。

如下:

/** 根据返回选择的文件,来进行操作 **/
 

 

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (resultCode != Activity.RESULT_OK) {
Log.e(TAG, "onActivityResult() error, resultCode: " + resultCode);
super.onActivityResult(requestCode, resultCode, data);
return;
}
if (requestCode == EX_FILE_PICKER_RESULT) {
Uri uri = data.getData();
String name = GetPathFromUri4kitkat.getPath(this,uri);
try {
String lowercaseName = name.toLowerCase();
if (lowercaseName.endsWith(".bin")) {
logNLS("选择了bin文件");
logNLS("文件路径:" + name);
loadFile(name, false);
} else {
logNLS("文件格式错误");
}
}
catch (Exception ignore){

}

}
super.onActivityResult(requestCode, resultCode, data);

}

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/428/

标签: Android
分享给朋友:

“Android调用系统自带的文件管理器进行文件选择” 的相关文章

验证datatable是否被修改的问题

问题: 举个例子: 会员管理的修改  我先将会员详细信息存在一个datatable  User里面   然后 界面上的控件与该datatable一一绑定, 在用户保存的时候  验证该datatable是否被修改 来判断是否需要操作数据库 &...

未能加载文件或程序集“file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports

首先我使用工具的信息为:Visual Studio 2010 ,水晶报表的版本为:13.0.0.99。 我想做的就是:使用VS2010中的WPF,将DataSet中的数据展示出来。(DataSet中的数据来自Oracle数据库) 但是我在运行的时候出现了这个问题: 未能加载文件或程序集“...

xcopy用法中的排除复制

利用xcopy进行排除复制 xcopy /e /s /h /exclude:uncopy.txt  mail  mail_x mail为源文件夹,mail_x为目标文件夹 uncopy.txt(所要排除的文件以及文件夹关键字)如:内容如下,表示排除文件夹或文件名中含有以下字眼的内...

Proteus网络标号自动加一

Proteus网络标号自动加一

在原理图界面,按A(切换到英文输入法),弹出如下窗口: 将PROPERTY=VALUE改成net=P0#,那么网络标号就会从P00开始自动加一,如图所示。...

Android-如何关闭AlertDialog.Builder对话框

AlertDialog.Builder对话框没有类似finish()或者dismiss()这样的方法。 但是它的父类AlertDialog有dismiss方法,而且AlertDialog.Builder在.show()的时候会得到一个AlertDialog对象,我们就可以用dismiss方法将该Bu...

群晖安装OnlyOffice

群晖安装OnlyOffice

1、拉取镜像ssh  admin@201.201.201.168cd /volume1/dockersudo docker pull onlyoffice/documentserver 2、安装onlyoffice,注意配置端口本地端口与已用的不冲突即可 3、关闭密钥否则每次都提...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。