Rumah >Java >javaTutorial >Bagaimana untuk Mencegah Gelung Infinite Apabila Mengosongkan Medan EditText dalam Android?
Android EditText: Mendengar Perubahan Teks dan Mengosongkan Medan Lain
Untuk memastikan hanya satu daripada dua medan yang mengandungi data, ia menjadi mustahak untuk kosongkan medan lain jika satu diubah suai. Keperluan ini timbul dalam situasi di mana medan1 dan medan2, dua medan EditText, tidak sepatutnya memegang nilai secara serentak.
Seperti yang dikemukakan dalam soalan, melampirkan TextWatcher pada kedua-dua medan1 dan medan2 menyebabkan gelung tak terhingga di mana medan mengosongkan setiap satu. lain selama-lamanya.
Penyelesaian:
Untuk menyelesaikan isu ini, laksanakan semakan untuk hanya mengosongkan medan bertentangan apabila medan semasa mengandungi teks. Ini boleh dicapai dengan memeriksa panjang rentetan input.
Dalam kod yang diubah suai di bawah, pernyataan "jika" menyemak sama ada panjang rentetan input (iaitu, teks yang dimasukkan ke dalam medan semasa) adalah berbeza daripada 0. Jika ya, medan lawan dikosongkan:
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 memasukkan semakan ini, gelung tak terhingga dipecahkan dan kefungsian yang diingini dicapai, memastikan hanya satu daripada medan itu pernah mengandungi data pada bila-bila masa.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Gelung Infinite Apabila Mengosongkan Medan EditText dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!