Ram*_*dam 8 android android-intent
我使用以下Intent类型并使用"Intent.EXTRA_ALLOW_MULTIPLE"来选择多个文件选择,但我想将最大文件选择计数设置为Intent,而不使用android应用程序中的自定义类.
Intent intent = new Intent();
intent.setType("*/*");
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, true);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
String[] extraMimeTypes = {"image/*", "video/*", "application/pdf", "audio/*",
"application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",};
intent.putExtra(Intent.EXTRA_MIME_TYPES, extraMimeTypes);
intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
startActivityForResult(intent, 201);
Run Code Online (Sandbox Code Playgroud)
我想在android Intent中发送文件选择计数.
小智 0
我能想到的唯一方法是使用ClipData检查OnActivityResult()方法中Intent 数据参数内接收的文件数量,并在超出限制时调用 Intent。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK&&requestCode==201&&data!=null){
ClipData clip=data.getClipData();
if(clip==null){//data.getClipData() returns null if there is ONE item received
Toast.makeText(this,"You have selected only one item!",Toast.LENGTH_LONG).show();
//To receive and manage a single data because clip gets null in this case
ClipData.Item item = new ClipData.Item(data.getData());
ClipDescription description=new ClipDescription("clip",new String[1]);
clip=new ClipData(description,item);
//You have your single data in clip
}else{
if(clip.getItemCount()>YOUR_LIMIT){
Toast.makeText(this,"You have selected greater items than the maximum limit! Reselect your files again!",Toast.LENGTH_LONG).show();
Intent intent = new Intent();
intent.setType("*/*");
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, true);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
String[] extraMimeTypes = {"image/*", "video/*", "application/pdf", "audio/*",
"application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",};
intent.putExtra(Intent.EXTRA_MIME_TYPES, extraMimeTypes);
intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
startActivityForResult(intent, 201);
}else{
//Manage Data Received in ClipData clip
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |