Wie aktiviere ich das standardmäßige Kopieren und Einfügen für eine TextView in Android?
Lesezeit: 4 Minuten
Nutzer
Ich möchte das standardmäßige Kopieren und Einfügen für eine TextView aktivieren (dasselbe wie für EditText). Wie kann ich es tun?
Ich habe versucht, einen nicht bearbeitbaren EditText zu verwenden, aber er hat nicht gut funktioniert (manchmal wurde er bearbeitbar oder das Copy-Paste-Overlay wurde nicht angezeigt). Und es ist wahrscheinlich kein guter Ansatz im Allgemeinen.
Benötigen Sie eine funktionierende Lösung ab API 7.
Suchst du danach?
– Jermin Bazazian
30. April 2012 um 15:21 Uhr
Es ist ähnlich, aber nicht dasselbe, weil ich den gesamten Text kopieren möchte. Aber es sieht genauso aus. Das Problem ist, dass die Antwort dort nur ab API 11 funktioniert und ich etwas brauche, das ab API 7 funktioniert.
– Nutzer
30. April 2012 um 15:23 Uhr
ClipboardManager ist seit API 1 verfügbar (siehe Hier ). Wie wäre es mit langem Drücken mit einem Popup zum Kopieren in die Zwischenablage?
– Jermin Bazazian
30. April 2012 um 15:40 Uhr
@Jermin Ja, es scheint, ich muss eine benutzerdefinierte Lösung erstellen.
Nur eine Anmerkung dazu: Wenn Ihre Textansicht anfänglich ausgeblendet ist und Sie sie programmgesteuert mit setVisibility anzeigen, müssen Sie textView.setTextIsSelectable(true) verwenden, damit dies funktioniert. In diesem Fall funktioniert es nicht über XML.
– Praveen Singh
4. November 17 um 19:20 Uhr
RamiReddy
Um das standardmäßige Kopieren/Einfügen für TextView zu aktivieren, können Sie eine der folgenden Optionen wählen:
Änderung in der Layoutdatei: Fügen Sie die folgende Eigenschaft zu Ihrer TextView hinzu
android:textIsSelectable="true"
Schreiben Sie diese Zeile in Ihre Java-Klasse, um sie programmgesteuert festzulegen. myTextView.setTextIsSelectable(true);
Wenn Sie lange auf die Textansicht drücken, können Sie die Aktionsleiste zum Kopieren / Einfügen sehen.
ich tue es. Wenn ich auf Texte klicke, öffnet sich die Symbolleiste mit den Schaltflächen “Kopieren” und “Alle auswählen”. aber nachdem ich darauf geklickt habe passiert nichts. Was kann ich tun?
– Mina Dahesh
5. Mai 16 um 6:36 Uhr
Diese Lösung ist besser als die mit dem grünen Häkchen markierte.
– Adam Hurwitz
1. Juli 16 um 17:34 Uhr
Nutzer
Dies funktioniert für Kopien vor Honeycomb:
import android.text.ClipboardManager;
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ClipboardManager cm = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(textView.getText());
Toast.makeText(context, "Copied to clipboard", Toast.LENGTH_SHORT).show();
}
});
Eine gute Strategie wäre, dies zusammen mit der Antwort von CommonsWare zu verwenden. Seit dem Hinzufügen android:textIsSelectable im Layout lebt, wird es auf niedrigeren API-Ebenen einfach ignoriert. Verwenden Sie dann die Lösung von Ixx innerhalb einer if-Anweisung, die überprüft, ob das API-Level unter 11 liegt. Das Beste aus beiden Welten. Das Schöne daran android:textIsSelectable ist, dass es Ihnen die Textauswahl-Aktionsleiste der Plattform gibt und ein nettes natives Gefühl hat.
– ejf
11. September 12 um 0:15 Uhr
Die Methode setText(CharSequence) vom Typ ClipboardManager ist veraltet
– S.M_Emamian
10. Januar 15 um 19:49 Uhr
Ja, nun, diese Antwort ist mehr als 2 Jahre her. Fühlen Sie sich frei zu bearbeiten oder ein neues hinzuzufügen.
– Nutzer
10. Januar 15 um 19:51 Uhr
Erfordert API 11, Aktualisierter Code, vorherige Methode ist veraltet
Lösung für Thema Vollbild ohneActionBar
Erweitern TextView und im Konstruktor folgenden Code einfügen
final TextView txtcopypaste = findViewById(R.id.txtcopypaste); // my textview
txtcopypaste.setOnClickListener(new View.OnClickListener() { // set onclick listener to my textview
@Override
public void onClick(View view) {
ClipboardManager cm = (ClipboardManager)getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(txtcopypaste.getText().toString());
Toast.makeText(getApplicationContext(), "Copied :)", Toast.LENGTH_SHORT).show();
}
});
Erfordernis : Sie müssen den Text kopieren und einfügen, der sich in der Textansicht befindet.
Ergebnis: Mit textview , sobald ich auf die Textansicht geklickt habe. Es wird automatisch der Text kopiert, der sich in der Textansicht befindet.
Notiz: Versuchen Sie beim Importieren von clipboardmanager zu bevorzugen
Bitte bevorzugen Sie den Text-Zwischenablage-Manager
import android.text.ClipboardManager; // prefer this
versuchen Sie, den Inhalts-Zwischenablage-Manager zu vermeiden
import android.content.ClipboardManager; // Not this
Suchst du danach?
– Jermin Bazazian
30. April 2012 um 15:21 Uhr
Es ist ähnlich, aber nicht dasselbe, weil ich den gesamten Text kopieren möchte. Aber es sieht genauso aus. Das Problem ist, dass die Antwort dort nur ab API 11 funktioniert und ich etwas brauche, das ab API 7 funktioniert.
– Nutzer
30. April 2012 um 15:23 Uhr
ClipboardManager
ist seit API 1 verfügbar (siehe Hier ). Wie wäre es mit langem Drücken mit einem Popup zum Kopieren in die Zwischenablage?– Jermin Bazazian
30. April 2012 um 15:40 Uhr
@Jermin Ja, es scheint, ich muss eine benutzerdefinierte Lösung erstellen.
– Nutzer
2. Mai 12 um 7:05 Uhr