开发者

Focus next textview automatically

开发者 https://www.devze.com 2023-01-01 09:37 出处:网络
I have a TextView with android:maxLength set to 3 and another with android:maxLength set to 7. I want focus to automatically move to the second TextView once the 3 chars of the first TextView are fil

I have a TextView with android:maxLength set to 3 and another with android:maxLength set to 7.

I want focus to automatically move to the second TextView once the 3 chars of the first TextView are filled up. How to achieve this without inheriting TextView and writing a custom impl开发者_如何学JAVAementation?


I haven't tried but this might work.

Setup a listener to fire when the text was changed, for this use

addTextChangedListener(TextWatcher watcher)

Then based on the text length you can request the focus change to the next field.

If you want to find out the next field you can call View.focusSearch(View.FOCUS_FORWARD) Find the nearest view in the specified direction that can take focus. This does not actually give focus to that view.


For future readers expecting to 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) {
    }
});
0

精彩评论

暂无评论...
验证码 换一张
取 消