Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mencegah Gelung Infinite Apabila Melaksanakan Pengecualian Bersama dengan Pendengar Perubahan Teks dalam Android?

DDD
Lepaskan: 2024-11-12 12:53:02
asal
404 orang telah melayarinya

How to Prevent Infinite Loops When Implementing Mutual Exclusion with Text Change Listeners in Android?

Pendengar Perubahan Teks dalam Android: Mengendalikan Pengecualian Bersama

Dalam pembangunan aplikasi Android, menghadapi situasi di mana anda perlu memastikan bahawa hanya satu daripada pelbagai medan mengandungi kandungan boleh timbul. Untuk mencapai matlamat ini, Pendengar Perubahan Teks memainkan peranan yang penting.

Pertimbangkan senario di mana anda mempunyai dua medan teks, medan1 dan medan2. Selepas mengubah suai medan1, anda ingin mengosongkan medan2, dan sebaliknya. Matlamatnya adalah untuk menjamin bahawa hanya satu medan yang mempunyai kandungan pada bila-bila masa.

Coretan kod yang disediakan menggunakan TextWatcher untuk menangani keperluan ini. Walau bagaimanapun, melampirkan TextWatchers pada kedua-dua medan mencetuskan gelung tak terhingga, mengakibatkan ranap aplikasi:

field1.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        field2.setText("");
    }
});

field2.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        field1.setText("");
    }
});
Salin selepas log masuk

Untuk menyelesaikan isu ini, penyelesaian mudah melibatkan menyemak sama ada teks medan itu tidak kosong (iaitu, panjangnya adalah lebih besar daripada sifar) sebelum mengosongkannya:

field1.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (s.length() != 0) {
            field2.setText("");
        }
    }
});

field2.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (s.length() != 0) {
            field1.setText("");
        }
    }
});
Salin selepas log masuk

Pengubahsuaian ini memastikan bahawa teks dalam medan bertentangan dikosongkan hanya jika ia mengandungi kandungan yang tidak kosong. Dengan menggunakan pendekatan ini, gelung tak terhingga dihapuskan dan kefungsian yang dimaksudkan dicapai.

Penting untuk mematuhi konvensyen penamaan dan merujuk kepada TextWatcher sebagai TextWatcher dan bukan "Pendengar Perubahan Teks. " Istilah yang konsisten ini meningkatkan kebolehbacaan kod dan memudahkan pemahamannya oleh pembangun lain.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Gelung Infinite Apabila Melaksanakan Pengecualian Bersama dengan Pendengar Perubahan Teks dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan