成都网站建设设计

将想法与焦点和您一起共享

安卓打开文件浏览器,选择文件后得到返回路径-创新互联

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

创新互联专注于企业全网营销推广、网站重做改版、海城网站定制设计、自适应品牌网站建设、H5高端网站建设成都做商城网站、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为海城等各大城市提供网站开发制作服务。

在安卓应用开发中经常会遇到需要打开系统文件管理器选择文件后返回路径的操作。例如点击一个导入的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许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:安卓打开文件浏览器,选择文件后得到返回路径-创新互联
转载来于:http://chengdu.cdxwcx.cn/article/dossig.html