温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

安卓打开文件浏览器,选择文件后得到返回路径

发布时间:2020-08-04 12:27:26 来源:网络 阅读:4650 作者:smilegc 栏目:开发技术

新手,写的不对还望指正!

在安卓应用开发中经常会遇到需要打开系统文件管理器选择文件后返回路径的操作。例如点击一个导入的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());

}

}


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI