请问如何打开一个对话框,用来选取某个文件,且返回该文件的完整
aide吧
全部回复
仅看楼主
level 9
请问如何打开一个对话框,用来选取某个文件,且返回该文件的完整路径
2018年10月11日 09点10分 1
level 12
你这思路不是有了吗
2018年10月11日 10点10分 2
不知道如何实现
2018年10月11日 11点10分
@积极具有层次感 不难,用File类或调用系统的文件管理器,File有返回文件绝对路径的方法
2018年10月11日 15点10分
level 13
//调用系统选择器选文件
//自己设置文件类型
Intent it=new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); it.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
//使用startActivityForResult是为了获取用户选择的文件 startActivityForResult(Intent.createChooser(it,"选择图片"),0);
//重写onActivityResult以获得你需要的信息
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
super.onActivityResult(requestCode,resultCode,data);
//此处的requestCode用于判断接收的Activity是不是你想要的那个
if(resultCode == RESULT_OK && requestCode == 0)
{
//获得图片的路径 getAbsolutePath(this,data.getData(),MediaStore.Images.Media.DATA));
}else if(resultCode==RESULT_OK)
{
snack("请重新选择图片");
}
}
//从Uri中获取文件路径
public String getAbsolutePath(Activity c,Uri uri,String s)
{
try
{
String [] proj={s};
Cursor cursor=c.managedQuery(uri,
proj, // Which columns to return
null, // WHERE clause; which rows to return (all rows)
null, // WHERE clause selection arguments (none)
null); // Order-by clause (ascending by name)
int column_index=cursor.getColumnIndexOrThrow(proj[0]);
cursor.moveToFirst();
return cursor.getString(column_index);
}catch(Exception e)
{
return uri.getPath();
}
}
2018年10月12日 02点10分 3
1