Rumah >Java >javaTutorial >Bagaimana untuk Mencegah Gelung Infinite Apabila Menggunakan TextChangeListeners dengan Medan EditText Berbilang?
Pendengar Perubahan Teks Android dengan Medan EditText Berbilang
Dalam pembangunan Android, TextChangeListener membenarkan pembangun memantau perubahan dalam kandungan teks medan EditText . Walau bagaimanapun, apabila menggunakan berbilang medan EditText, mengosongkan kandungan satu medan selepas pengubahsuaian yang lain memerlukan pelaksanaan yang teliti untuk mengelakkan gelung tak terhingga.
Isu:
Kod yang disediakan cuba mengosongkan medan2 apabila medan1 berubah dan sebaliknya. Walau bagaimanapun, ini menghasilkan gelung tak terhingga, kerana setiap medan mencetuskan peristiwa perubahan dalam satu lagi, membawa kepada pembersihan tanpa henti.
Penyelesaian:
Untuk mengelakkan gelung tak terhingga, semak perlu ditambah untuk memastikan bahawa hanya medan yang tidak kosong dibersihkan. Dengan menambahkan field1.addTextChangedListener dan field2.addTextChangedListener, anda boleh memantau perubahan dalam kedua-dua medan. Dalam setiap pendengar, tambahkan syarat yang menyemak sama ada panjang CharSequence lebih besar daripada 0. Jika ya, kosongkan kandungan medan lain.
Kod Disemak:
field1.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) {} @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (s.length() != 0) field2.setText(""); } }); field2.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) {} @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (s.length() != 0) field1.setText(""); } });
Dengan memastikan bahawa hanya medan bukan kosong dikosongkan, anda menghalang gelung tak terhingga dan membenarkan pengguna memasukkan data ke dalam satu medan sahaja pada satu masa.
Nota Tambahan:
Ingat untuk mengikuti konvensyen penamaan dan gunakan lekukan yang betul untuk kejelasan. Juga, rujuk dokumentasi rasmi untuk TextWatcher untuk butiran lanjut.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Gelung Infinite Apabila Menggunakan TextChangeListeners dengan Medan EditText Berbilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!