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.

0voto

harveyhans Punkte 447

Wenn du es kürzer machen möchtest, verwende:

ClipData clip = ClipData.newPlainText(label, text);
((ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(clip);

0voto

Hitesh Sahu Punkte 37527

Kotlin Hilfsmethode zum Anhängen eines Klicks zum Kopieren von Texten auf einem TextView

Fügen Sie diese Methode irgendwo in die Util-Klasse ein. Diese Methode fügt einen Klick-Listener auf den TextView hinzu, um den Inhalt des TextViews beim Klicken auf diesen TextView in die Zwischenablage zu kopieren

/**
 * Parameter: cliplabel, textview, context
 */
fun attachClickToCopyText(textView: TextView?, clipLabel: String, context: Context?) {
    if (textView != null && null != context) {
        textView.setOnClickListener {
            val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
            val clip = ClipData.newPlainText(clipLabel, textView!!.text)
            clipboard.primaryClip = clip
            Snackbar.make(textView,
                    "Kopiert $clipLabel", Snackbar.LENGTH_LONG).show()
        }
    }

}

0voto

Nikhil S Marathe Punkte 181

\==> Es ist zu einfach, den Inhalt mit einem Klick auf "Anzeigen" zu kopieren.

-> Speichern Sie den Text in einer Zeichenfolgenvariablen.

-> Erstellen Sie eine Variable vom Typ ClipboardManager

-> Erstellen Sie eine Variable vom Typ ClipData

-> muss aus dem Paket als " android.content." importiert werden

-> den Clip in clipboard.setPrimaryclick einstellen.

-> erledigt.

z. B.

import android.content.ClipboardManager;

import android.content.ClipData;

stringNodetxt.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        String stringNodeCopied = stringNodetxt.getText().toString();

        ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        ClipData clip = android.content.ClipData.newPlainText("Kopiert", stringNodeCopied);

        clipboard.setPrimaryClip(clip);
        Toast.makeText(getBaseContext(), "In Zwischenablage kopiert!", Toast.LENGTH_SHORT).show();
    }
});

0voto

Ranjith Guru Punkte 1

Versuchen Sie den folgenden Code. Es wird die neueste API unterstützen:

ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
                        if (clipboard.hasPrimaryClip()) {
                            android.content.ClipDescription description = clipboard.getPrimaryClipDescription();
                            android.content.ClipData data = clipboard.getPrimaryClip();
                            if (data != null && description != null && description.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN))
                            {
                                String url= (String) clipboard.getText();
                                searchText.setText(url);
                                System.out.println("data="+data+"description="+description+"url="+url);
                            }}

0voto

Für Kotlin Geben Sie diesen Code einfach in Ihren Button ein. Dieser Code funktioniert für die Fragment-Klasse.

var myClipboard = getSystemService(requireContext(), ClipboardManager::class.java) as ClipboardManager
            val copyText = quotes // quotes ist der tatsächliche Text (den ich kopieren möchte), der in copyText zugewiesen ist.
            val clip = ClipData.newPlainText("Kopiert", copyText)
            myClipboard.setPrimaryClip(clip)
            Toast.makeText(requireActivity(), "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