我有3个EditTexts (et1, et2, et3)
,彼此相邻排列,{{1>} '1'。
我的要求是:
当在编辑文本中输入一个字母时(只能包含1个字符,最大长度为1),光标会自动转到下一个EditText。
同样,当用户点击et2时,光标应该转到et1。
将以顺序方式填写edittext。这是第一个,然后是第二个,然后是第三个。 因此,即使用户点击第三个编辑文本框&第一个和第二个文本框为空,然后光标转到第一个edittext。 简单来说,光标将转到最后一个空的编辑文本。
如何以程序化方式实现这一目标。
谢谢
答案 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)
以下是您的问题的答案: