¿Alguien puede decirme cómo copiar el texto presente en una vista de texto particular al portapapeles cuando se presiona un botón?
@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 :)
}
});
}
}
Quiero copiar el texto en TextView textView en el portapapeles cuando bCopy
se presiona el botón .
android
clipboard
copy-paste
clipboardmanager
clipboard-interaction
Darshan Gowda
fuente
fuente
Respuestas:
utilizar ClipboardManager
asegúrese de haber importado
android.content.ClipboardManager
y NOandroid.text.ClipboardManager
. Este último está en desuso. Consulte este enlace para obtener más información.fuente
ClipboardManager clipboard = getSystemService(getContext(), ClipboardManager.class);
Aquí el método para copiar texto al portapapeles:
Este método funciona en todos los dispositivos Android.
fuente
Ayer hice esta clase. Tómelo, es para todos los niveles de API
fuente
Como una práctica extensión de Kotlin:
Actualizar:
Si usa ContextCompat debe usar:
fuente
context.getSystemService(ClipboardManager::class.java)
usted está apuntando a una firma de ContextCompat, ¿no es así? Gracias por los comentariosSolo usa esto. Solo funciona para Android api> = 11 antes de eso tendrás que usar un ClipData.
Espero que te haya ayudado :)
[ACTUALIZACIÓN 19/03/2015] Al igual que Ujjwal Singh dijo que el método
setText
está en desuso ahora, debe usar, tal como lo recomiendan los documentos, setPrimaryClip (clipData)fuente
(ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE); _clipboard.setText(YOUR TEXT);
setText
useClipData
+setPrimaryClip
Esto se puede hacer en Kotlin así:
¿Dónde
file.readText()
está tu cadena de entrada?fuente
usa este código
fuente
use esta función para copiar al portapapeles
fuente
fuente
int sdk = android.os.Build.VERSION.SDK_INT;
fuente
usa este método:
en el lugar de setPrimaryClip también podemos usar los siguientes métodos:
Borra cualquier clip primario actual en el portapapeles.
Devuelve el clip primario actual en el portapapeles.
Devuelve una descripción del clip primario actual en el portapapeles pero no una copia de sus datos.
Este método está en desuso. Utilice getPrimaryClip () en su lugar. Esto recupera el clip primario e intenta forzarlo a una cadena.
Devuelve verdadero si actualmente hay un clip primario en el portapapeles.
fuente
fuente
Prueba el siguiente código. Admitirá la última API:
fuente
Método auxiliar de Kotlin para adjuntar clic para copiar textos en un TextView
Pon este método en algún lugar de la clase Util. Este método adjunta el detector de clics en la vista de texto a Copiar contenido de textView a un clipText al hacer clic en ese textView
fuente
Puede realizar esta función de copiar al portapapeles cuando haga clic en el evento del botón. así que ponga estas líneas de código dentro de su botón en ClickListerner
fuente
Solo escribe este código:
fuente
clipboard
. Pero gracias porsetText
. Está en desuso, así que úsaloval clip = ClipData.newPlainText(null, text) clipboard.setPrimaryClip(clip)
.Para Kotlin
fuente