В Android нет собственного способа для этого, но я написал пример кода того, как вы можете легко достичь того, что вы хотите. Вы просто устанавливаете прослушиватель длинных щелчков на textview, и внутри него вы показываете AlertDialog для всплывающих окон, который имеет возможность вставки, и когда вы нажимаете, он использует ClipboardManager для получения основного содержимого в буфере обмена. В зависимости от ваших потребностей вы можете настроить код и использовать что угодно вместо AlertDialog (например, мы использовали контекстное меню раньше, но оно вызывало сбои в различных версиях Android, поэтому мы заменили его на AlertDialog). Дайте мне знать, если у вас есть вопросы.
textView.setLongClickable(true);
textView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
AlertDialog.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new AlertDialog.Builder(ArticleActivity.this, android.R.style.Theme_Material_Dialog_Alert);
} else {
builder = new AlertDialog.Builder(ArticleActivity.this);
}
builder.setTitle("Paste")
.setMessage("Are you sure you want to paste this entry?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
if (clipboardManager != null) {
Log.e("TAG", "clipboard:" + clipboardManager.getPrimaryClip());
}
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.show();
return true;
}
});