Saya tahu ini sangat mudah (doh ...) tetapi saya sedang mencari cara untuk menjalankan metode mengetuk atau mengklik baris teks TextView di Aplikasi Android.
Saya terus berpikir tentang pendengar tombol dan panggilan pendengar metode anonim, tetapi sepertinya tidak berlaku untuk TextView.
Dapatkah seseorang mengarahkan saya ke beberapa cuplikan kode untuk menunjukkan bagaimana mengklik atau mengetuk sepotong teks di TextView menjalankan metode?
TextView
- link.medium.com/TLq6s8ltc3Jawaban:
Anda bisa mengatur handler klik dalam xml dengan atribut ini:
Jangan lupa atribut yang dapat diklik, tanpa itu, penangan klik tidak dipanggil.
main.xml
MyActivity.java
sumber
setOnClickListener
setclickable
atribut, tetapi menggunakanonClick
atribut ternyata tidak.onClick
tidak mengaturclickable
atribut di Android 5.0 Lollipop (API 21). Mungkin mereka menganggapnya sebagai bug yang tidak terjadi pada versi yang lebih lama?Ini mungkin bukan yang Anda cari tetapi ini yang berhasil untuk apa yang saya lakukan. Semua ini setelah saya
onCreate
:sumber
OK saya telah menjawab pertanyaan saya sendiri (tetapi apakah itu cara terbaik?)
Ini adalah cara menjalankan metode ketika Anda mengklik atau mengetuk beberapa teks di TextView:
dan main.xml saya adalah:
sumber
dari dalam aktivitas yang memanggil tata letak dan tampilan teks, pendengar klik ini berfungsi:
tampilan teks dinyatakan seperti ini (wisaya default):
dan dalam file strings.xml
sumber
Meskipun Anda dapat menyelesaikan masalah dengan mengatur pendengar ke tampilan teks, disarankan untuk tidak melakukannya. Anda harus menggunakan tombol datar karena merupakan subkelas Tombol dan menyediakan banyak atribut yang tidak dimiliki TextView.
Untuk menggunakan tombol rata, tambahkan
style="?android:attr/borderlessButtonStyle"
atribut -sumber
di textView
Anda juga harus menerapkan View.OnClickListener dan dalam metode On Click dapat menggunakan maksud
Saya menguji solusi ini berfungsi dengan baik.
sumber
Untuk mengklik sepotong teks (bukan keseluruhan
TextView
), Anda dapat menggunakanHtml
atauLinkify
(keduanya membuat tautan yang membuka url, meskipun, bukan panggilan balik dalam aplikasi).Linkify
Gunakan sumber daya string seperti:
Kemudian dalam tampilan teks:
Html
Menggunakan
Html.fromHtml
:Kemudian di tampilan teks Anda:
sumber
Anda dapat menggunakan TextWatcher untuk TextView, lebih fleksibel daripada ClickLinstener (bukan yang terbaik atau lebih buruk, hanya lebih satu arah).
sumber