2015-06-11 13 views
7

Dopo aver fatto clic su un pulsante sto ottenendo il contenuto dal fornitoreÈ possibile consentire all'utente di selezionare più file nel framework di accesso alla memoria ..?

Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT); 
     i.addCategory(Intent.CATEGORY_OPENABLE); 
     i.setType("image/*"); 
     startActivityForResult(i, REQUESTCODE); 

ora voglio per permettere agli utenti per la selezione multipla è possibile.?

+0

si visualizza il contenuto all'interno di un listview o così? quindi basta usare la funzione longclick da listview –

+0

secondo voi devo portare tutti i dati da tutte le directory in un listview che sarà mal di testa e l'utente si irriterà scorrendo per selezionare il file. c'è qualche altro modo disponibile? – SAM

+0

è necessario chiarire la domanda, per l'utilizzo di più selezioni si utilizza in genere un listview, perché è necessario mostrare più elementi che un utente può selezionare, o cosa volevi ?? –

risposta

7

Non so se hai risolto il tuo problema, ma ecco come ho implementato una selezione multipla con l'archiviazione di accesso quadro

Intent filePickerIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT); 
    filePickerIntent.setType("*/*"); 
    filePickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
    startActivityForResult(filePickerIntent, REQUEST_CODE); 

Nel metodo Attività Risultato, è sufficiente scorrere il ClipData nell'intento parametro

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if(requestCode == REQUEST_CODE) 
    { 
     if(data != null) 
     { 
      ClipData clipData = data.getClipData(); 
      for(int i = 0; i < clipData.getItemCount(); i++) 
      { 
       ClipData.Item path = clipData.getItemAt(i); 
       Log.i("Path:",path.toString()); 
      } 
     } 
    } 
} 

Per selezionare più file in Storage di accesso quadro di attività di interfaccia utente, basta tenere premere qualsiasi elemento e multi selezione attiverà.

+0

L'applicazione si arresta in modo anomalo! Inoltre sono stato in grado di selezionare solo un file alla volta. Dopo aver selezionato solo il file, ho premuto OK e l'intento del selettore è tornato. Questa volta l'app si è bloccata! –

+0

clipdata sarà null se si fa clic su un solo file. Controlla se clipdata è nullo, quindi procedi con la selezione di più file. se null allora: 'data.getData()' – skarfa

Problemi correlati