在EditTexts之间连续输入

时间:2014-01-30 20:14:41

标签: android android-edittext

我有3个EditTexts (et1, et2, et3),彼此相邻排列,{{1>} '1'

我的要求是:

  1. 当在编辑文本中输入一个字母时(只能包含1个字符,最大长度为1),光标会自动转到下一个EditText。

  2. 同样,当用户点击et2时,光标应该转到et1。

  3. 将以顺序方式填写edittext。这是第一个,然后是第二个,然后是第三个。 因此,即使用户点击第三个编辑文本框&第一个和第二个文本框为空,然后光标转到第一个edittext。 简单来说,光标将转到最后一个空的编辑文本。

  4. 如何以程序化方式实现这一目标。

    谢谢

2 个答案:

答案 0 :(得分:0)

主要想法是使用TextWatcher

您可以使用以下内容:

et1.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
         et2.requestFocus;
         et1.setEnabled(false);
    }

    @Override
    public void afterTextChanged(Editable s) {
    }
});

et2.addTextChangedListener(new TextWatcher() {
        String textBeforeChange;

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
          textBeforeChange = s.subSequence(start, start + count).toString();
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
              if (s.subSequence(start, start + count).length == 0 
                   && textBeforeChange .length >= 1)
            et1.requestFocus();
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

答案 1 :(得分:0)

以下是您的问题的答案: