首页 > Java > java教程 > 正文

Android 中清除 EditText 字段时如何防止无限循环?

DDD
发布: 2024-11-14 12:45:02
原创
641 人浏览过

How to Prevent an Infinite Loop When Clearing EditText Fields in Android?

Android EditText:监听文本更改并清空其他字段

要确保两个字段中只有一个包含数据,必须如果修改了另一字段,则清除该字段。这种需要出现在 field1 和 field2(两个 EditText 字段)不应同时保存值的情况下。

如问题中所示,将 TextWatcher 附加到 field1 和 field2 会导致无限循环,其中字段会清除每个字段

解决方案:

要解决此问题,请实施检查以仅在当前字段包含文本时清除相反字段。这可以通过检查输入字符串的长度来实现。

在下面修改后的代码中,“if”语句检查输入字符串(即输入到当前字段中的文本)的长度是否为与 0 不同。如果是,则清除相反的字段:

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("");
    }
});
登录后复制

通过合并此检查,无限循环被打破,并实现所需的功能,确保只有一个字段包含数据在任何给定时间。

以上是Android 中清除 EditText 字段时如何防止无限循环?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板