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.

6voto

Rehan Khan Punkte 291

Wenn Sie Text aus dem EditText kopieren möchten, erstellen Sie zuerst den EditText

    EditText mResultEt = findViewById(R.id.resultEt);

Erstellen Sie dann eine Schaltfläche, auf die nach dem Klicken dieser Text kopiert werden soll

    ImageButton copyClipBoard = findViewById(R.id.btn_copy);

Verwenden Sie dann den Listener der Schaltfläche

Java

copyClipBoard.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ClipboardManager clipboardManager = (ClipboardManager)
                        getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData clipData = ClipData.newPlainText("nonsense_data",
                        mResultEt.getText().toString());
                clipboardManager.setPrimaryClip(clipData);
                Toast.makeText(MainActivity.this, R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show();
            }
        });

Kotlin

btn1.setOnClickListener{
            val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
            val clipData = ClipData.newPlainText(
                "nonsense_data",
                content_et.getText().toString()
            )
            clipboardManager.setPrimaryClip(clipData)
            Toast.makeText(this@MainActivity, R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show()

        }

und stellen Sie sicher, dass Sie dies importieren

import android.content.ClipboardManager;

Importieren Sie nicht diesen

android.text.ClipboardManager

6voto

Himanshu Aggarwal Punkte 1753
@SuppressLint({ "NewApi", "NewApi", "NewApi", "NewApi" })
@SuppressWarnings("deprecation")
@TargetApi(11)
public void onClickCopy(View v) {   // Benutzerdefinierter onClick-Listener
    int sdk_Version = android.os.Build.VERSION.SDK_INT;
    if(sdk_Version < android.os.Build.VERSION_CODES.HONEYCOMB) {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        clipboard.setText(textView.getText().toString());   // Vorausgesetzt, dass Sie den Text von einem TextView kopieren
        Toast.makeText(getApplicationContext(), "In die Zwischenablage kopiert!", Toast.LENGTH_SHORT).show();
    }
    else { 
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
        android.content.ClipData clip = android.content.ClipData.newPlainText("Text Label", textView.getText().toString());
        clipboard.setPrimaryClip(clip);
        Toast.makeText(getApplicationContext(), "In die Zwischenablage kopiert!", Toast.LENGTH_SHORT).show();
    }   
}

4voto

Pradeep Kumar Punkte 1953

Verwenden Sie diese Methode:

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

Anstelle von setPrimaryClip können wir auch die folgenden Methoden verwenden:

void    clearPrimaryClip()

Löscht den aktuellen primären Clip in der Zwischenablage.

ClipData    getPrimaryClip()

Gibt den aktuellen primären Clip in der Zwischenablage zurück.

ClipDescription getPrimaryClipDescription()

Gibt eine Beschreibung des aktuellen primären Clips in der Zwischenablage zurück, jedoch keine Kopie seiner Daten.

CharSequence    getText()

Diese Methode ist veraltet. Verwenden Sie stattdessen getPrimaryClip(). Dies ruft den primären Clip ab und versucht, diesen in einen String umzuwandeln.

boolean hasPrimaryClip()

Gibt true zurück, wenn sich derzeit ein primärer Clip in der Zwischenablage befindet.

4voto

Sahil Dholpuria Punkte 41

Einfache und einfache Android-Verwendung von Java.

copytext.setOnClickListener(v -> {
            ClipboardManager myClipboard;
            myClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
            ClipData myClip;
            String Text = "Hallo Welt!";
            myClip = ClipData.newPlainText("text", Text);
            myClipboard.setPrimaryClip(myClip);

            Toast.makeText(this, "Kopiert", Toast.LENGTH_SHORT).show();
        });

3voto

Francis Eyogo Punkte 71
 ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE); 
 ClipData clip = ClipData.newPlainText(label, text);
 clipboard.setPrimaryClip(clip);

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