8

我有一个TextViewwith android:maxLengthset to3和另一个 with android:maxLengthset to 7

TextView一旦第一个3字符TextView被填满,我希望焦点自动移动到第二个。如何在不继承TextView和编写自定义实现的情况下实现这一点?

4

2 回答 2

6

我没有尝试过,但这可能有效。

设置一个侦听器以在文本更改时触发,用于此用途

addTextChangedListener(TextWatcher watcher)

然后根据文本长度,您可以请求将焦点更改到下一个字段。

如果您想找出下一个字段,您可以调用View.focusSearch(View.FOCUS_FORWARD)Find the nearest view in the specified direction that can take focus。这实际上并没有关注该观点。

于 2010-05-31T12:05:00.227 回答
5

对于希望阅读的未来读者COPY/PASTE

int MAX_LENGTH = 3;

txt1.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) {
        if (s.length() == MAX_LENGTH) {
            txt2.requestFocus(View.FOCUS_DOWN);
        }
    }

    @Override
    public void afterTextChanged(Editable s) {
    }
});
于 2014-12-08T20:47:05.947 回答