459 Stimmen

Wie kopiere ich Text in die Zwischenablage auf Android?

Kann mir bitte jemand sagen, wie ich den Text, der in einem bestimmten TextView enthalten ist, in die Zwischenablage kopieren kann, wenn eine Schaltfläche 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 - generierter Methodenstub

            ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
            String getstring = textView.getText().toString();

            // Hilfe, um fortzufahren :)
        }
    });
}

Ich möchte den Text im TextView textView in die Zwischenablage kopieren, wenn die Schaltfläche bCopy gedrückt wird.

1voto

Einfache Kotlin-Erweiterungsfunktion zum Kopieren von Text in die Zwischenablage

fun Context.copyToClipboard(clipLabel: String, text: CharSequence){
    val clipboard = ContextCompat.getSystemService(this, ClipboardManager::class.java)
    clipboard?.setPrimaryClip(ClipData.newPlainText(clipLabel, text))

    toast("Kopiert $clipLabel")
}

0voto

Salman Nazir Punkte 2489

In Kotlin habe ich dafür eine Erweiterung

fun Context.copyToClipboard(text: String) {
  val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
  val clip = ClipData.newPlainText(getString(R.string.copy_clipboard_label, getString(R.string.app_name)), text)
  clipboard.setPrimaryClip(clip)
}

0voto

Papel Punkte 491

Für das Kopieren von Texten in Android:

            TextView text = findViewById(R.id.text_id);
            ImageView icons = findViewById(R.id.copy_icon);

            icons.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
                    ClipData clipData = ClipData.newPlainText("text was du möchtest", text.getText().toString());
                    clipboardManager.setPrimaryClip(clipData);

                    Toast.makeText(context, "Text kopiert", Toast.LENGTH_SHORT).show();
                }
            });

0voto

Bita Mirshafiee Punkte 600

Um die Clip-Board-Liste zu durchsuchen, holen Sie sich zuerst das Clipboard-Objekt:

private val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager

Überprüfen Sie dann, ob sich Daten im Clip-Board befinden, mit dieser Funktion:

fun isClipboardContainsData() : Boolean{
        return when{
            !clipboard.hasPrimaryClip() -> false
            else -> true
        }
    }

Verwenden Sie dann diese Funktion, um das Clipboard-Objekt zu durchsuchen, wie unten gezeigt:

fun searchClipboard() : ClipData.Item? {
        return if (isClipboardContainsData()){

            val items = clipboard.primaryClip
            val clipboardSize = items?.itemCount ?: 0
            for (i in 0..clipboardSize) {
                val item = items?.getItemAt(i)
                return if (item != null){
                       return item
                }else
                    null
            }
            return null
        }else
            null

    }

Hier können Sie sehen, dass das searchClipboard-Element ein Element vom Typ ClipData.Item zurückgibt. Das Clipboard enthält eine Liste von ClipData.Item und wenn Sie die Implementierung des Clipboards durchgehen, finden Sie Folgendes über ClipData.Item:

public static class Item {
    final CharSequence mText;
    final String mHtmlText;
    final Intent mIntent;
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
    Uri mUri;
}

Also was Sie in einem Clipboard-Element halten können, könnte vom Typ sein:

  1. CharSequence
  2. String
  3. Intent (dies unterstützt das Kopieren von App-Verknüpfungen)
  4. Uri (zum Kopieren von komplexen Daten von einem Inhaltsanbieter)

0voto

Malith Ileperuma Punkte 724

Sie können diese Kopierfunktion in die Zwischenablage ausführen, wenn das onclick-Tastaturereignis auftritt. Fügen Sie daher diese Codezeilen in Ihren Schaltflächen-OnClickListener ein

android.content.ClipboardManager clipboardManager = (android.content.ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clipData = android.content.ClipData.newPlainText("Text Label", ViewPass.getText().toString());
clipboardManager.setPrimaryClip(clipData);
Toast.makeText(getApplicationContext(),"Vom Zwischenablage kopiert!",Toast.LENGTH_SHORT).show();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X