[英]How can I create an arraylist of selected files (or url list) and then use every element of the array - Android
我想同时 select 多个项目,并导入我的应用程序,例如 3 gpx 到我的应用程序,当我完成第一个时,应用程序抛出第二个直到数组完成(gpx 的数量,文件,我有) 我正在使用 OSMAND 并且 clipData 或 get gpxUri 的某些内容无法正常工作
osmandapi\OsmAndHelper.java 是意图的 function 所在的位置
private void sendRequest(OsmAndIntentBuilder intentBuilder) {
try {
Uri uri = intentBuilder.getUri();
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.addFlags(intentBuilder.getFlags());
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
Map<String, String> extraData = intentBuilder.getExtraData();
if (extraData != null) {
for (String key : extraData.keySet()) {
intent.putExtra(key, extraData.get(key));
}
}
if (intentBuilder.getGpxUri() != null) {
ClipData clipData = ClipData.newRawUri("Gpx", intentBuilder.getGpxUri());
intent.setClipData(clipData);
intentBuilder.getGpxUri();
for (int i= 0; i< ClipData.newRawUri("Gpx", intentBuilder.getGpxUri()).getItemCount(); i++) {
}
}
if (isIntentSafe(intent)){
mActivity.startActivityForResult(intent, mRequestCode);
} else {
mOsmandMissingListener.osmandMissing();
}
} catch (Exception e) {
Toast.makeText(mActivity, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
谢谢你。
您可以创建一个ArrayList
来存储选定的文件或 URL,然后使用循环遍历ArrayList
的元素。
ArrayList
来存储选择的文件或 URL。 例如: ArrayList<Uri> selectedFiles = new ArrayList<>();
ArrayList
。 例如:
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(intent, REQUEST_CODE);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
if (data.getClipData() != null) {
for (int i = 0; i < data.getClipData().getItemCount(); i++) {
Uri fileUri = data.getClipData().getItemAt(i).getUri();
selectedFiles.add(fileUri);
}
} else {
Uri fileUri = data.getData();
selectedFiles.add(fileUri);
}
}
}
ArrayList
的元素。 例如:
for (Uri fileUri : selectedFiles) {
// do something with the file
}
请务必注意,您需要检查设备是否具有读取您尝试访问的文件所需的权限。 您可以使用ContextCompat.checkSelfPermission()
方法在尝试访问之前检查您是否具有所需的权限
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.