2015-10-19 6 views
26

Secondo Android documentation, ClipData utilizza "etichetta" come una sorta di rappresentazione per i dati copiati.Che cos'è esattamente il parametro "label" in ClipData in Android?

ClippedData è un tipo complesso contenente istanze one o Item, ognuna delle quali può contenere una o più rappresentazioni di un elemento di dati. Per la visualizzazione all'utente, ha anche un'etichetta e una rappresentazione iconica.

E poi spiega ulteriormente "etichetta" come etichetta visibile all'utente per i dati di clip in alcuni API docs. Tuttavia, sono ancora confuso sull'uso dell'etichetta.

Come è visibile questa etichetta per gli utenti? Come dovrei usarlo? Cosa devo impostare per questa etichetta quando chiamo il metodo factory ClipData newPlainText(CharSequence label, CharSequence text)? per esempio:

private void copyToClipBoard() { 

    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
    ClipData clip = ClipData.newPlainText(
      "text label", // What should I set for this "label"? 
      "content to be copied"); 
    clipboard.setPrimaryClip(clip); 
    Toast.makeText(AboutActivity.this, "Saved to clip board", Toast.LENGTH_SHORT).show(); 
} 

Grazie in anticipo :)

risposta

22
ClipData clip = ClipData.newPlainText(
      "text label", 
      "content to be copied"); 

qui etichetta di testo descrive quali sono i dati in clip di

ad es.

ClipData clip = ClipData.newPlainText(
      "user Name", 
      user.getName()); 

possiamo retrive questo utilizzando

clip.getDescription(); 
+3

I termini "Utente" nella documentazione "Etichetta visibile dall'utente per i dati della clip" indicano in realtà gli sviluppatori anziché gli utenti dell'app? Non vedo alcun valore per gli utenti dell'app di conoscere questa etichetta ... L'etichetta – hackjutsu

+6

è disponibile solo per gli sviluppatori, non per l'utente di app – Gaurav

+0

Nice! Ero confuso dalla descrizione "User-visible" ... Ma ora è chiaro. – hackjutsu

11

Sembra che il "etichetta visibile all'utente per i dati clip" descrizione nella documentazione deve essere interpretato come qualcosa che come sviluppatore possibile impostare e quindi mostralo all'utente e non come qualcosa che il sistema Android mostrerà all'utente.

Quando si guarda il codice sorgente Android il metodo ClipDescription.getLabel() sembra non essere utilizzato prima di Android 5.0. In 5.0 RemoteInput, RemoteInputCompatJellybean e com.android.mail.compose.ComposeActivity hanno dichiarato using the method.

Se si osserva l'utilizzo di tutti questi set un'etichetta che non è destinata a essere vista dall'utente, ma invece utilizzata per identificare in modo programmatico la clip in un punto diverso nel codice.

Quando si guarda come ClipData.newPlainText() is used all'interno di Android, la maggior parte delle volte null viene fornito come etichetta, suggerendo che l'etichetta non è realmente utilizzata per nulla.

È ovviamente possibile che alcuni produttori di telefoni o altri sviluppatori app prendano l'etichetta e la visualizzino all'utente in alcune situazioni. Ma in generale dovrebbe essere sicuro assumere che l'etichetta di una clip verrà mostrata all'utente nella tua app solo se la mostrerai tu stesso.

Problemi correlati