Kopieren von text aus dem Android-AlertDialog?
Gibt es eine Möglichkeit, um den text in ein AlertDialog
"wählbar" oder "kopierbar" in Android? Oder muss ich eine andere verwenden widget statt AlertDialog
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dadurch erreicht werden kann, mehrere Möglichkeiten. Aber zuerst zum anpassen der dialog mehr, Sie müssen verwenden Sie die
AlertDialog.Builder
-Klasse zu erstellen Sie Ihren benutzerdefinierten dialog. Diese können dann aufgefüllt werden, die durch Ihre eigeneView
s.Hier sind drei Methoden, wie Sie archivieren können Ihre auswählbaren text:
Mit Android 3.0 +
Seit API-Level 11 (Android 3.0), die
TextView
hat eine Methode namenssetTextIsSelectable()
, der so ziemlich aussieht, wie das, was ich erreicht durch hacken um, wie weiter unten detailliert beschrieben.Das problem bei dieser Lösung ist, dass es funktioniert nur auf Geräten mit Android 3.0 und höher, während die anderen beiden Lösungen funktioniert auch auf Android 1.5 (ich habe Android 2.2).
In die Zwischenablage kopieren
Da der Zweck der Markierung von text (die meiste Zeit), um es zu kopieren, können Sie einfach fügen Sie eine
onLongClickListener
oder eine einfacheonClickListener
(die, die Sie wie die meisten) zu denTextView
und kopieren Sie den angezeigten text in die System-Zwischenablage.Wenig illustration:
In diesem Beispiel kopieren Sie den angezeigten text in die Systeme Zwischenablage.
Eine
EditText
Aussehen wie einTextView
Da es keinen wirklich einfachen Weg, um den Text eines
TextView
wählbar für Android-Versionen vor 3.0 verwenden, können Sie eineEditText
(die auswählbaren text in der Standardeinstellung) und lassen es so Aussehen wie einTextView
.Dies muss einige XML-Layout (um das
TextView
's style), aber vermutlich bekommt man den meisten nativen look and feel:Der XML-Teil:
Der Java-Teil:
Einige Anpassungen und eye-candy Hinzugefügt werden kann, um das Ergebnis 😉
Ich hoffe, das gibt Ihnen eine Vorstellung davon, wie Sie erreichen können, diese Aufgabe. Es ist spät, Zeit fürs Bett.
Dies ist ein bisschen hackish, weil es annimmt, Sie wissen, die Standard-AlertDialog layout (siehe Wo finde ich Standard-AlertDialog layout-xml-Datei?), aber wenn Sie wollen, diesen Weg gehen, könnten Sie die folgenden tun:
Konnte Sie ein EditText in Ihrem AlertDialog. Wenn Sie nicht wollen, es zu scheinen, wie es eine textbox gibt, könnten Sie einfach Stil wie der hintergrund der AlertDialog, um es in Mischung.
http://developer.android.com/guide/topics/ui/dialogs.html
Hoffentlich das hilft, wenn nicht, kann ich versuchen, andere Mittel bereitstellen einer Lösung.