Я хочу реализовать OnLongClickListener
для некоторых из моих TextView
с, но я не хочу повторять один и тот же код везде, поэтому я хочу расширить TextView
и реализовать OnLongClickListener
только один раз.
class LongClickToCopyTextView : TextView {
constructor(context: Context) : this(context, null, 0)
constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
init {
setOnLongClickListener {
val clipboard = context?.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager?
val clip = ClipData.newPlainText(context?.packageName, text)
clipboard?.primaryClip = clip
true
}
}
}
Реализация прослушивателя используется для копирования текста TextView в буфер обмена, когда пользователь долго нажимает на него.
Проблема в том, что текст настраиваемого TextView не отображается. Но если я использую обычный TextView
, текст отображается правильно.
XML
<com.dzboot.myips.custom.LongClickToCopyTextView
android:id="@+id/simNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="00"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />