Kann mir bitte jemand sagen, wie ich den in einer bestimmten Textansicht vorhandenen Text in die Zwischenablage kopieren kann, wenn eine Taste gedrückt wird?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainpage);
textView = (TextView) findViewById(R.id.textview);
copyText = (Button) findViewById(R.id.bCopy);
copyText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
String getstring = textView.getText().toString();
//Help to continue :)
}
});
}
}
Ich möchte den Text in TextView textView in die Zwischenablage kopieren, wenn die Schaltfläche bCopy
gedrückt wird.
android
clipboard
copy-paste
clipboardmanager
clipboard-interaction
Darshan Gowda
quelle
quelle
Antworten:
Verwenden Sie ClipboardManager
Stellen Sie sicher, dass Sie importiert haben
android.content.ClipboardManager
und NICHTandroid.text.ClipboardManager
. Letzteres ist veraltet. Überprüfen Sie diesen Link für weitere Informationen.quelle
ClipboardManager clipboard = getSystemService(getContext(), ClipboardManager.class);
Hier die Methode zum Kopieren von Text in die Zwischenablage:
Diese Methode funktioniert auf allen Android-Geräten.
quelle
Gestern habe ich diese Klasse gemacht. Nehmen wir an, es ist für alle API-Ebenen
quelle
Als praktische Kotlin-Erweiterung:
Aktualisieren:
Wenn Sie ContextCompat verwenden, sollten Sie Folgendes verwenden:
quelle
context.getSystemService(ClipboardManager::class.java)
sodass Sie auf eine ContextCompat-Signatur verweisen, nicht wahr? Vielen Dank für das FeedbackVerwenden Sie einfach diese. Es funktioniert nur für Android API> = 11, bevor Sie eine ClipData verwenden müssen.
Hoffe es hat dir geholfen :)
[UPDATE 19.03.2015] Genau wie Ujjwal Singh sagte, dass die Methode
setText
jetzt veraltet ist, sollten Sie setPrimaryClip (clipData) verwenden, genau wie in den Dokumenten empfohlen.quelle
(ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE); _clipboard.setText(YOUR TEXT);
setText
VerwendungClipData
+setPrimaryClip
Dies kann in Kotlin folgendermaßen erfolgen:
Wo
file.readText()
ist deine Eingabezeichenfolge?quelle
Verwenden Sie diesen Code
quelle
Verwenden Sie diese Funktion zum Kopieren in die Zwischenablage
quelle
quelle
int sdk = android.os.Build.VERSION.SDK_INT;
quelle
Verwenden Sie diese Methode:
An der Stelle von setPrimaryClip können wir auch die folgenden Methoden verwenden:
Löscht alle aktuellen primären Clips in der Zwischenablage.
Gibt den aktuellen primären Clip in der Zwischenablage zurück.
Gibt eine Beschreibung des aktuellen primären Clips in der Zwischenablage zurück, jedoch keine Kopie seiner Daten.
Diese Methode ist veraltet. Verwenden Sie stattdessen getPrimaryClip (). Dadurch wird der primäre Clip abgerufen und versucht, ihn zu einer Zeichenfolge zu zwingen.
Gibt true zurück, wenn sich derzeit ein primärer Clip in der Zwischenablage befindet.
quelle
quelle
Versuchen Sie den folgenden Code. Es wird die neueste API unterstützen:
quelle
Kotlin-Hilfsmethode zum Anhängen von Click-to-Copy-Texten in einer Textansicht
Fügen Sie diese Methode irgendwo in die Util-Klasse ein. Diese Methode hängt den Klick-Listener in der Textansicht an, um den Inhalt von textView in einen clipText zu kopieren, wenn Sie auf diese textView klicken
quelle
Sie können diese Funktion zum Kopieren in die Zwischenablage ausführen, wenn Sie auf eine Schaltfläche klicken. Fügen Sie diese Codezeilen in Ihre Schaltfläche auf ClickListerner ein
quelle
Schreiben Sie einfach diesen Code:
quelle
clipboard
. Aber danke dafürsetText
. Es ist veraltet, also verwendenval clip = ClipData.newPlainText(null, text) clipboard.setPrimaryClip(clip)
.Für Kotlin
quelle