Saya telah membuat tata letak yang berisi dua tombol, Berikutnya dan Sebelumnya. Di antara tombol saya menghasilkan beberapa pandangan dinamis. Jadi ketika saya pertama kali meluncurkan aplikasi saya ingin menonaktifkan tombol "Sebelumnya" karena tidak akan ada tampilan sebelumnya. Saya juga ingin menonaktifkan tombol "Next" ketika tidak ada lebih banyak tampilan untuk ditampilkan. Apakah ada cara untuk menonaktifkan tombol?
371
Anda tidak dapat mengaktifkan atau menonaktifkannya di XML Anda (karena tata letak Anda diatur pada saat runtime), tetapi Anda dapat mengatur apakah itu dapat diklik pada saat peluncuran aktivitas dengan
android:clickable
.sumber
Anda cukup menulis satu baris kode dalam aktivitas Anda
Ketika Anda ingin mengaktifkan tombol yang sama tulis saja
sumber
((Button)findViewById(R.id.mybutton)).setEnabled(false);
Ya itu bisa dinonaktifkan dalam XML hanya menggunakan:
sumber
android:enabled
ketika Anda mulai mengetiknya. (Bahkan hingga hari ini.)setEnabled
yang berfungsiDi Jawa, setelah Anda memiliki referensi tombol:
Untuk mengaktifkan / menonaktifkan tombol, Anda dapat menggunakan:
Atau:
Karena Anda ingin menonaktifkan tombol dari awal, Anda dapat menggunakan button.setEnabled (false); dalam metode onCreate. Jika tidak, dari XML, Anda dapat langsung menggunakan:
Begitu:
sumber
Dalam hal ini,
berfungsi dengan baik dan itu mengaktifkan dan menonaktifkan tombol sebagaimana mestinya. Tetapi begitu status tombol dinonaktifkan, tidak pernah kembali ke status diaktifkan lagi, meskipun itu dapat diklik. Saya mencoba membatalkan dan menyegarkan keadaan yang dapat digambar, tetapi tidak berhasil.
Jika Anda atau siapa pun yang memiliki masalah serupa, yang berhasil bagi saya adalah mengatur latar belakang dapat digambar kembali. Bekerja pada Level API apa pun.
sumber
Di Kotlin, jika Anda merujuk Tampilan Tombol dengan id, aktifkan / nonaktifkan tombol seperti
layout.xml
activity.kt
sumber
pertama di xml buat tombol sebagai
android:clickable="false"
kemudian dalam kode Anda,
oncreate()
metode di dalam mengatur properti tombol sebagaikemudian di dalam tombol klik ubah kode menjadi
sumber
CARA SALAH DALAM MENDENGARKAN GUNAKAN BUKAN PARAMETER BERBAGAI VARIABEL !!!
CARA YANG BENAR:
EDIT: Sebagai balasan untuk @ jeroen-bollen
ketika tampilan diklik objek Lihat kelas membuat panggilan balik ke metode onClick () mengirim sebagai parameter itu sendiri, jadi parameter tampilan nol tidak boleh terjadi jika itu merupakan Kesalahan Pernyataan itu bisa terjadi misalnya ketika kelas objek Lihat dihancurkan sementara (untuk contoh dikumpulkan oleh GC) atau metode dirusak karena peretasan
sedikit tentang instanceof & null
tiga kata dari Penulis
JIKA ANDA MEMINTA MENGAPA?
PALING UNTUK MENGHINDARI NullPointerException
Sedikit lebih banyak kode akan menghemat waktu Anda pada pelacakan bug selanjutnya dalam kode Anda & mengurangi terjadinya kelainan.
pertimbangkan contoh berikut:
sumber
v
bukanButton
.Dengan Kotlin yang bisa Anda lakukan,
sumber