2015-10-19 2 views
26

Nach dem Android documentation, verwenden ClipData "Label" als eine Art Darstellung zu den kopierten Daten.Was genau ist "Label" Parameter in ClipData in Android?

ClippedData ist ein komplexer Typ, der eine oder Item-Instanzen enthält, von denen jede eine oder mehrere Darstellungen eines Datenelements enthalten kann. Zur Anzeige für den Benutzer hat es auch eine Beschriftung und ikonische Darstellung.

Und es dann weiter erklärt „label“ als Benutzer sichtbare Label für die Clipdaten in einigen API docs. Ich bin jedoch immer noch verwirrt über die Verwendung des Labels.

Wie ist dieses Label für Benutzer sichtbar? Wie soll ich es benutzen? Was muss ich für dieses Label festlegen, wenn ich die ClipData-Factory-Methode newPlainText(CharSequence label, CharSequence text) aufruft? zum Beispiel:

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(); 
} 

Vielen Dank im Voraus :)

Antwort

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

hier beschreibt Textbeschriftung, welche Daten in Clip ist

zB.

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

wir können dies retrive von

clip.getDescription(); 
+3

Bedeutet die Benennung "Benutzer" in den Dokumenten "Benutzer sichtbare Label für die Clip-Daten" eigentlich die Entwickler anstelle der Nutzer der App? Ich sehe keinen Wert für die Benutzer der App dieses Label zu kennen ... – hackjutsu

+6

Label ist nur für Entwickler, nicht für App-Benutzer – Gaurav

+0

Nice! Ich war verwirrt von der Beschreibung "User-visible" ... Aber jetzt ist es klar. – hackjutsu

11

mit Es ist wie die „User-sichtbare Markierung für die Clip-Daten“ scheint Beschreibung in der Dokumentation sollten Sie als etwas interpretiert werden als ein Entwickler einstellen und dann zeigen Sie dem Benutzer selbst und nicht als etwas, das das Android-System dem Benutzer zeigen wird.

Beim Betrachten des Android-Quellcodes scheint die ClipDescription.getLabel() Methode vor Android 5.0 unbenutzt zu sein. In 5.0 RemoteInput, RemoteInputCompatJellybean und com.android.mail.compose.ComposeActivity angegeben using the method.

Wenn Sie sich die Verwendung ansehen, legen diese alle ein Label fest, das nicht dazu gedacht ist, vom Benutzer gesehen zu werden, sondern stattdessen den Clip programmatisch an einer anderen Stelle im Code zu identifizieren.

Wenn man sich anschaut, wie ClipData.newPlainText() is used in Android, die meiste Zeit Null als Label angegeben ist, schlägt das Etikett wird nicht wirklich für irgendetwas verwendet.

Es ist natürlich möglich, dass ein Telefonhersteller oder ein anderer App-Entwickler das Etikett nimmt und es dem Benutzer in einigen Situationen anzeigt. Im Allgemeinen sollte jedoch davon ausgegangen werden, dass das Label eines Clips nur dann dem Nutzer in Ihrer App angezeigt wird, wenn Sie es selbst zeigen.