Alguém pode me dizer como copiar o texto presente em uma determinada visualização de texto para a área de transferência quando um botão é pressionado?
@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 :)
}
});
}
}
Quero copiar o texto no TextView textView para a área de transferência quando o botão bCopy
for pressionado.
android
clipboard
copy-paste
clipboardmanager
clipboard-interaction
Darshan Gowda
fonte
fonte
Respostas:
use ClipboardManager
verifique se você importou
android.content.ClipboardManager
e NÃOandroid.text.ClipboardManager
. O último está obsoleto. Verifique este link para obter mais informações.fonte
ClipboardManager clipboard = getSystemService(getContext(), ClipboardManager.class);
Aqui, o método para copiar texto para a área de transferência:
Este método está funcionando em todos os dispositivos Android.
fonte
Ontem fiz essa aula. Aceite, é para todos os níveis da API
fonte
Como uma extensão útil do kotlin:
Atualizar:
Se você estiver usando o ContextCompat, deverá usar:
fonte
context.getSystemService(ClipboardManager::class.java)
você está apontando para uma assinatura ContextCompat, não é? Obrigado pelo feedbackApenas use isso. Funciona apenas para a API Android> = 11 antes que você precise usar um ClipData.
Espero que tenha ajudado :)
[ATUALIZAÇÃO 19/03/2015] Assim como Ujjwal Singh disse que o método
setText
está obsoleto agora, você deve usar, assim como os documentos o recomendam, setPrimaryClip (clipData)fonte
(ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE); _clipboard.setText(YOUR TEXT);
setText
useClipData
+setPrimaryClip
Isso pode ser feito no Kotlin assim:
Onde
file.readText()
está sua string de entrada.fonte
use este código
fonte
use esta função para copiar para a área de transferência
fonte
fonte
int sdk = android.os.Build.VERSION.SDK_INT;
fonte
use este método:
no local de setPrimaryClip, também podemos usar os seguintes métodos:
Limpa qualquer clipe principal atual na área de transferência.
Retorna o clipe principal atual na área de transferência.
Retorna uma descrição do clipe principal atual na área de transferência, mas não uma cópia de seus dados.
Este método está obsoleto. Use getPrimaryClip () em vez disso. Isso recupera o clipe principal e tenta coagi-lo a uma string.
Retorna true se houver atualmente um clipe principal na área de transferência.
fonte
fonte
Tente o seguinte código. Ele suportará a API mais recente:
fonte
Método auxiliar Kotlin para anexar textos de clique para copiar em um TextView
Coloque esse método em algum lugar da classe Util. Esse método anexa o listener de cliques no textview ao Copy Content of textView para um clipText ao clicar no textView
fonte
Você pode executar esta função de copiar para a área de transferência ao clicar no evento do botão. então coloque essas linhas de código dentro do seu botão onClickListerner
fonte
Basta escrever este código:
fonte
clipboard
. Mas obrigado porsetText
. Está obsoleto, então useval clip = ClipData.newPlainText(null, text) clipboard.setPrimaryClip(clip)
.Para Kotlin
fonte