Apakah ada cara untuk mengizinkan pengguna memilih / menyalin teks dalam TextView? Saya memerlukan fungsionalitas EditText yang sama di mana Anda dapat menekan lama kontrol dan mendapatkan opsi popup pilih semua / salin, tetapi saya memerlukan kontrol agar terlihat seperti TextView.
Mencoba beberapa hal seperti membuat EditText menggunakan opsi editable = "none" atau inputType = "none", tetapi hal itu masih mempertahankan latar belakang berbingkai dari EditText, yang tidak saya inginkan,
Terima kasih
------- Perbarui ----------------------
Ini 99% di sana, yang saya inginkan adalah agar pemilihan hilight terlihat (hal-hal oranye). Selain itu bagus, bisa hidup dengan ini:
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
style="?android:attr/textViewStyle"
android:textColor="@color/white"
android:textAppearance="@android:style/TextAppearance.Medium"
android:cursorVisible="false"
android:background="@null" />
Saya kira itu disebabkan karena cursorVisible = "false" tetapi tanpa itu kursor hadir bahkan tanpa pemilihan apa pun.
Jawaban:
android: textIsSelectable berfungsi (setidaknya di ICS - saya belum memeriksa di versi sebelumnya)
sumber
Tampilan Teks harus diaktifkan, dapat difokuskan, dapat diklik panjang dan teksIsSeleksi
sumber
textIsSelectable
tidak cukup? ini bekerja untuk saya dengan hanya opsi initextview.setTextIsSelectable(true)
kode java kode.textIsSelectableis
melakukan pekerjaan untuk sayatextIsSelectable
berfungsi untuk beberapa kasus, tetapi tidak untuk yang lain. Terkadang, tata letak yang sama tidak selalu berfungsi hanya dengan textIsSelectable tetapi dengan teks yang berbeda. Namun, solusi ini tampaknya tidak membuatnya berfungsi lebih baik, jadi masalahnya mungkin berasal dari tempat lain.Saya rasa saya punya solusi yang lebih baik. Telepon saja
registerForContextMenu(yourTextView);
dan Anda
TextView
akan terdaftar untuk menerima acara menu konteks.Kemudian menimpa
onCreateContextMenu
di AndaActivity
Semoga ini bisa membantu Anda dan orang lain yang mencari cara untuk menyalin teks dari file
TextView
sumber
ClipboardManager.setText(CharSequence text)
sudah usang di API level 11. GunakansetPrimaryClip(ClipData)
sebagai gantinya. Ini membuat ClippedItem yang menahan teks yang diberikan dan menetapkannya sebagai klip utama. Tidak ada label atau ikon. Bacaan yang baik tentang salin-tempel: tautanIni akan memungkinkan pengguna untuk memilih dan menyalin teks dengan mengklik lama atau seperti yang biasa kita lakukan
sumber
Saya mencoba menerapkan hal yang sama, dan pertanyaan Anda membantu saya menyetel tata letak teks edit saya dengan benar. Jadi terima kasih! :)
Kemudian saya menyadari, bahwa highlight sebenarnya akan terlihat jika kursor menyala. Tapi saya suka Anda tidak ingin melihat kursor sebelum lama mengklik teks, jadi saya menyembunyikan kursor di file layout.xml seperti Anda, dan menambahkan eventlistener untuk klik lama dan menampilkan kursor hanya saat pemilihan dimulai .
Jadi tambahkan pendengar di Aktivitas Anda di bagian onCreate:
Dan voila, tidak ada kursor di awal, dan jika Anda mengklik lama, kursor muncul dengan batas pilihan.
Saya harap saya bisa membantu.
Salam, fm
sumber
Saya juga mencoba melakukan sesuatu yang serupa tetapi masih membutuhkan pendekatan khusus dengan manipulasi penyorotan teks di TextView. Saya memicu sorotan dan menyalin
LongClick
tindakan.Beginilah cara saya berhasil menggunakan
SpannableString
:dan fungsi salin:
Saya harap ini membantu seseorang yang akhirnya menjawab pertanyaan ini :)
sumber
Menggunakan Kotlin Secara Terprogram (Salinan Manual)
Atau, tambahkan ekstensi properti Kotlin
Kemudian panggil
Menggunakan Kotlin Secara Terprogram (Salin Otomatis)
Jika Anda ingin menyalin otomatis ketika pengguna menekan lama Anda melihat, ini adalah kode dasar yang diperlukan:
Anda mungkin ingin menambahkan
Toast
untuk mengonfirmasi hal itu terjadiAtau, tambahkan fungsi ekstensi Kotlin
Menggunakan Xml (Salinan Manual)
Tambahkan ini ke Anda
<TextView>
sumber
Cukup gunakan pustaka sederhana ini: GitHub: TextView yang Dapat Dipilih
sumber