谁能告诉我,当按下按钮时,如何将特定文本视图中的文本复制到剪贴板?
@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 :)
}
});
}
我想在按下按钮bCopy
时将TextView text View中的Text复制到剪贴板。
使用剪贴板管理器
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText(label, text);
clipboard.setPrimaryClip(clip);
确保您已导入android. content.ClipboardManager
而不是android.text.ClipboardManager
。后期已弃用。查看此链接以获取更多信息。
以下是将文本复制到剪贴板的方法:
private void setClipboard(Context context, String text) {
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(text);
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData.newPlainText("Copied Text", text);
clipboard.setPrimaryClip(clip);
}
}
此方法适用于所有android设备。
作为一个方便的kotlin扩展:
fun Context.copyToClipboard(text: CharSequence){
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("label",text)
clipboard.setPrimaryClip(clip)
}
更新:
如果您使用ContextCompat,您应该使用:
ContextCompat.getSystemService(this, ClipboardManager::class.java)