265 votes

Comment copier du texte de manière programmatique dans mon application Android ?

Je construis une application Android et je veux copier la valeur du texte d'un widget EditText. Il est possible pour l'utilisateur d'appuyer sur Menu+A puis Menu+C pour copier la valeur, mais comment le faire de manière programmatique ?

1 votes

Gestionnaire de presse-papiers. developer.Android.com/reference/Android/content/

0 votes

Il s'agit essentiellement d'une question dupliquée de : stackoverflow.com/a/13517876/2116185

3voto

Rajeev Points 68

Pour Kotlin, utilisez le code ci-dessous à l'intérieur de l'activité.

import android.content.ClipboardManager

 val clipBoard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
 val clipData = ClipData.newPlainText("label","Message to be Copied")
 clipBoard.setPrimaryClip(clipData)

3voto

Alex Busuioc Points 144

Ou créer une extension Kotlin

 fun String.copyToClipboard(context: Context) {
     val clipBoard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
     val clipData = ClipData.newPlainText("label",this)
     clipBoard.setPrimaryClip(clipData)
  }

et ensuite appeler

"stringToCopy".copyToClipboard(requireContext())

1voto

Mehul Boghra Points 73

Voici mon code de travail

/**
 * Method to code text in clip board
 *
 * @param context context
 * @param text    text what wan to copy in clipboard
 * @param label   label what want to copied
 */
public static void copyCodeInClipBoard(Context context, String text, String label) {
    if (context != null) {
        ClipboardManager clipboard = (ClipboardManager) context.getSystemService(CLIPBOARD_SERVICE);
        ClipData clip = ClipData.newPlainText(label, text);
        if (clipboard == null || clip == null)
            return;
        clipboard.setPrimaryClip(clip);

    }
}

0voto

Junsu Lee Points 481

À moins que votre application ne soit l'éditeur de méthode d'entrée (IME) par défaut ou l'application qui a actuellement le focus, votre application ne peut pas accéder aux données du presse-papiers sur Android 10 ou supérieur. https://developer.Android.com/about/versions/10/privacy/changes#clipboard-data

0voto

jafar_aml Points 21

J'utilise ceci (travailler avec des fragments) - la méthode kotlinienne.

  private fun copyTextToClipboard(copyText: String) {

        val clipboardManager = requireActivity().
                               getSystemService(CLIPBOARD_SERVICE) as 
                                       android.content.ClipboardManager

        val clipData = ClipData.newPlainText("userLabel" ,copyText.trim())

        clipboardManager.setPrimaryClip(clipData)

    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X