【问题标题】:OnTextChanged not called when edittext length is full编辑文本长度已满时未调用 OnTextChanged
【发布时间】:2017-09-12 10:38:21
【问题描述】:

我有一个场景,我在编辑文本中只允许 1 个字符。所以在 onTextChanged 我检查了是否输入了一个字母,然后我将焦点切换到下一个编辑文本

<EditText
                android:id="@+id/etpinPassword1"
                style="@style/Edittext_with_weight"
                android:imeOptions="actionNext"
                android:inputType="number"
                android:maxLength="1" />

这里是 textWatcher 代码:

onTextChanged :- >

if (isValueEntered(charSequence)) {
                    etpinPassword2.requestFocus();
                    etpinPassword2.setEnabled(true);
                    appendPassword(charSequence);
                }

private boolean isValueEntered(CharSequence charSequence) {
        return charSequence.length() > 0;
    }

一切正常,除了当我回到已经填充的编辑文本时,永远不会调用 onTextChanged。我想再次调用它,以便在第一个已满时将焦点切换到下一个编辑文本。

【问题讨论】:

  • 您在第二次访问已填充的 edittext 时删除文本?
  • 你如何回到填充的EditText?检查它是否重新获得焦点。如果您不更改文本,也不会调用该方法
  • 在文本更改监听器后放入您的操作。
  • @RED_ 我再次手动单击我的编辑文本,以检查负面情况
  • @rajanks 不,我没有删除我的文本,我只是想输入另一个文本,并希望在更多文本输入时它应该移动到其他编辑文本,因为当前文本已经满了

标签: android textwatcher


【解决方案1】:

问题是你将最大长度设置为 1,所以它会阻止你输入其他字符。

【讨论】:

  • 我该如何做这两件事,我想将 maxLength 设置为 1 并且还想检查用户是否在输入 1 位数字后输入
  • 为什么用户要输入另一个字符而不删除一个字符?
  • 我想处理它,如果已经输入并且用户仍在输入它应该移动到另一个编辑文本。实际上我正在制作一个四位数的 pin 视图,其中我有四个编辑文本,每个编辑文本的 maxLength 为 1。
猜你喜欢
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
相关资源
最近更新 更多