新手,写的不对还望指正!
在安卓应用开发中经常会遇到需要打开系统文件管理器选择文件后返回路径的操作。例如点击一个导入的Button按钮,首先在根目录下寻找所需要的文件,若文件不存在就弹出对话框是否选择文件,选择文件后返回文件路径,给Button注册监听:
public void onClick(View arg0) {
if (mFilePath.equals("没有找到相关文件")) {
AlertDialog.Builder builder = new AlertDialog.Builder(FeildListActivity.this);
builder.setCancelable(false);
builder.setTitle("提示")
.setMessage("该目录下文件不存在是否从别的目录下寻找?")
.setPositiveButton("是",new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,int which) {
// 打开系统文件浏览功能
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent,INFILE_CODE);
}
})
.setNegativeButton("否",null})
.show();
}
重写onActivityResult函数,在函数内部获得返回路径,代码如下:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != Activity.RESULT_OK) {
finish();
} else if (requestCode == INFILE_CODE) {
mFilePath = Uri.decode(data.getDataString());
//通过data.getDataString()得到的路径如果包含中文路径,则会出现乱码现象,经过Uri.decode()函数进行解码,得到正确的路径。但是此时路径为Uri路径,必须转换为String路径,网上有很多方法,本人通过对比发现,Uri路径里多了file://字符串,所以采用以下方法将前边带的字符串截取掉,获得String路径,可能通用性不够好,下一步会学习更好的方法。
mFilePath = mFilePath.substring(7, mFilePath.length());
}
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
新闻名称:安卓打开文件浏览器,选择文件后得到返回路径-创新互联
标题来源:https://www.cdcxhl.com/article6/dossig.html
成都网站建设公司_创新互联,为您提供ChatGPT、网站内链、搜索引擎优化、定制网站、定制开发、响应式网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联