尝试与我的应用共享单个或多个文件时遇到此问题。当我选择单个文件并点击共享图标并选择我的应用程序时,我得到文件的uri,而当我选择多个文件时,我得到一个uri的Arraylist。以下是我的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// AuthDetails.initiate(this);
setContentView(R.layout.activity_pdfupload);
ArrayList<String> fileUriList= (ArrayList<String>) getIntent().getExtras().get(Intent.EXTRA_STREAM);
Log.e("urilist", fileUriList.toString());
init();
btCancel.setOnClickListener(cancelUploadListener);
btUploadPDF.setOnClickListener(uploadPdfListener);
}
我收到以下异常。
Caused by: java.lang.ClassCastException: android.net.Uri$HierarchicalUri cannot be cast to java.util.ArrayList
at com.example.newActivity.activities.PDFUploadActivity.onCreate(PDFUploadActivity.java:44)
有没有办法管理单一选择和多选择方案?
答案 0 :(得分:1)
试试这个
ArrayList<Uri> fileUriList = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
Log.e("urilist", fileUriList.toString());
答案 1 :(得分:0)
我遇到了类似的问题,这是您可以做的。
String action = getIntent().getAction();
intent = new Intent(this, MyActivityToBeOpen.class);
if (action == null) {
action = Intent.ACTION_SEND;
}
switch (action) {
case Intent.ACTION_SEND:
intent.putExtra(Intent.EXTRA_STREAM, (Parcelable) getIntent().getParcelableExtra(Intent.EXTRA_STREAM));
break;
case Intent.ACTION_SEND_MULTIPLE:
intent.putExtra(Intent.EXTRA_STREAM, getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM));
break;
}