search = (Button)findViewById(R.id.FindButton);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent,1);
}
});
我使用ACTION_GET_CONTENT函数来获取文件名和本地路径。(setType 是 / 但我想获取 json 文件(
所以这是我的活动结果
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == 1){
}
}
当我选择数据时,我应该在其中输入什么代码?
我使用ACTION_GET_CONTENT函数来获取文件名和本地路径
ACTION_GET_CONTENT
与文件无关。
当我选择数据时,我应该在其中输入什么代码?
欢迎您使用ContentResolver
来query()
OpenableColumns
,这可以为您提供"显示名称"。这不一定是文件名,因为您处理的是内容,而不是文件。请参阅此示例应用,了解如何使用 CursorLoader
获取OpenableColumns
。
但是,您无法获取"文件路径",因为这不是文件。它是内容。您正在询问的内容类似于询问如何获取https://stackoverflow.com/questions/43878541/android-how-do-i-get-text-type-files-name-and-path-from-local-device
的文件路径。
您可以使用ContentResolver
和openInputStream()
来获取Uri
标识的内容的InputStream
。体面的JSON解析器(例如Gson(接受InputStream
,并且可以从那里解析JSON。