Android 为什么从存储器中选择文件时显示null?
我想在一个按钮上选择一个pdf文件,然后将该文件发送到另一个按钮上的url。我的问题是选择pdf文件。我在Android 为什么从存储器中选择文件时显示null?,android,file,uri,Android,File,Uri,我想在一个按钮上选择一个pdf文件,然后将该文件发送到另一个按钮上的url。我的问题是选择pdf文件。我在“onActivityResult()”方法中得到null 我的代码是 SelectButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent()
“onActivityResult()”
方法中得到null
我的代码是
SelectButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setType("application/pdf");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Pdf"), PDF_REQ_CODE);
}
});
ActivityResult方法是
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PDF_REQ_CODE && resultCode == RESULT_OK && data != null && data.getData() != null) {
uri = data.getData();;
SelectButton.setText("PDF is Selected");
}
}
但是当我试图从uri获取文件路径时,我得到的uri为null,并且得到null指针异常。试试这个,告诉我
Button button = (Button) x.findViewById(R.id.buttonStripText);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent,PICKFILE_RESULT_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
switch(requestCode){
case PICKFILE_RESULT_CODE:
if(resultCode==RESULT_OK){
fileName = data.getData().getPath();
}
break;
}
}
你在android清单中添加了person吗?权限被添加到读写存储
中,但我得到的uri为null
你得到的不是uri而是意图<代码>意图数据。请重新格式化您得到的内容。当尝试从uri获取文件路径时,会出现空指针异常。
您不应该尝试从uri获取路径。当然也不是uri为空时。但是代码在哪里?它是否打开以选择文件,它说了什么?我选择了文件,但我没有在“onActivityResult()”上获取它。请尝试显示一个字符串以查看它在哪里不起作用,URI