Rumah >Java >javaTutorial >Bagaimana untuk Mencegah Gelung Infinite Apabila Mengosongkan Medan EditText dalam Android?

Bagaimana untuk Mencegah Gelung Infinite Apabila Mengosongkan Medan EditText dalam Android?

DDD
DDDasal
2024-11-14 12:45:02702semak imbas

How to Prevent an Infinite Loop When Clearing EditText Fields in 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!

Kenyataan:
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