Teilen über


Drag & Drop

Die Unterstützung von Drag & Drop sorgt bei Verwendung der verschiedenen von Surface Duo unterstützten Eingabeformen für ein hervorragendes Benutzererlebnis.

Dieses Beispiel veranschaulicht, wie Du Drag & Drop gemäß der Android-Anleitung zu Drag & Drop in deiner Android-App implementieren kannst.

sample app UI using drag-and-drop

Schlüsselwert

Dank Drag & Drop können Benutzer auf zwei Bildschirmen Daten einfach zwischen Teilen einer App oder verschiedenen Apps austauschen.

Typen von Apps, die von diesem Muster profitieren können

  • Apps, die Text oder Bilder enthalten

Weitere Informationen findest du in der Einführung in Doppelbildschirmgeräte im Abschnitt Drag & Drop.

Ausprobieren unseres Beispiels

Hol dir das Drag & Drop-Beispiel auf GitHub:

Übersicht über den Quellcode

Diese Codeausschnitte zeigen die wichtigsten Schritte für Drag & Drop.

  1. Füge einen dragListener an die Ansicht an, in der das Ablegen erfolgen soll.

    View.setOnDragListener();
    
  2. Implementieren von ACTION_DROP in onDrag()

    public boolean onDrag(View v, DragEvent event) {
        switch (event.getAction()) {
            case DragEvent.ACTION_DROP:
                return true;
        }
    }
    
  3. Abrufen des URI aus DragEvent

    DragEvent.getClipData().getItemAt().getUri();
    
  4. Anfordern einer Berechtigung für diesen URI

    requestDragAndDropPermissions(DragEvent);
    
  5. Richten einer Abfrage an ContentProvider zum Abrufen des abgelegten Elements

    File Metadata : ContentResolver.query( uri, new String[]{OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null))
    Actual file :  ContentResolver.openFile(uri)