Почему контекстное меню копирования/вставки не появляется, когда я на данный момент в текстовом виде в элементе перерабоAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему контекстное меню копирования/вставки не появляется, когда я на данный момент в текстовом виде в элементе перерабо

Сообщение Anonymous »

Во время процесса переработки и повторного использования Recyclerview (элементы/представления). Почему контекстное меню копирования/вставки не появляется, когда я давно дает текст внутри элемента переработки?

Код: Выделить всё

fun setTextCustomStyle(textView: TextView) {
val context = textView.context

textView.highlightColor = context.getColor(R.color.mj_color_black_08_transparent)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
textView.setTextSelectHandleLeft(R.drawable.text_select_handle_left_mtrl)
textView.setTextSelectHandleRight(R.drawable.text_select_handle_right_mtrl)
textView.setTextSelectHandle(R.drawable.text_select_handle_middle_mtrl)
}

textView.movementMethod = object : LinkMovementMethod() {
override fun onTouchEvent(widget: TextView, buffer: Spannable, event: MotionEvent): Boolean {
if (widget.isTextSelectable) {
super.onTouchEvent(widget, buffer, event)
}
return false
}
}

textView.customSelectionActionModeCallback = object : ActionMode.Callback {
override fun onCreateActionMode(mode: ActionMode?, menu: Menu?): Boolean {
Selection.selectAll(textView.text as? Spannable)
return true
}

override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?): Boolean {
return false
}

override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
if (item.itemId == android.R.id.copy) {
val plainText = (textView.text ?: "").subSequence(textView.selectionStart, textView.selectionEnd).toString()
val clipboardManager = context.getSystemService(ClipboardManager::class.java) as ClipboardManager
clipboardManager.apply {
val clip = ClipData.newPlainText("plainText", plainText)
setPrimaryClip(clip)
}
ToastUtil.show(R.string.already_copy)
mode.finish()
return true
}
return false
}

override fun onDestroyActionMode(mode: ActionMode?) {
if (textView is EditText) {
textView.requestFocus()
}
}
}

textView.setTextIsSelectable(true)
if (textView is EditText) {
textView.setOnLongClickListener {
if (textView.text.isNullOrEmpty() && textView.isFocused) {
textView.setSelection(0)
} else {
textView.selectAll()
}
false
}
} else {
textView.setOnLongClickListener {
false
}
}
}
Вот как я использую контекстное меню

Подробнее здесь: https://stackoverflow.com/questions/797 ... ext-inside
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»