imeOptions “actionNext” theo lập trình - làm cách nào để chuyển sang trường tiếp theo?


91

Trong XML bố cục, có thể chỉ định nút android:imeOptions="actionNext"nào thêm Nextvào bàn phím ảo và bằng cách nhấp vào nó - tiêu điểm sẽ chuyển sang trường tiếp theo.

Làm thế nào để thực hiện điều này theo chương trình - ví dụ: dựa trên một số tiêu điểm kích hoạt sự kiện để chuyển sang trường tiếp theo?

Câu trả lời:


191

Bạn có thể sử dụng các hằng số từ lớp EditorInfo cho các tùy chọn IME. giống,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

vâng, nếu không nó sẽ chèn một dòng mới và nhảy đến đó =)
Ilker Baltaci 22/09/17

2
Làm thế nào để trả lời câu hỏi của OP? Điều này không tự động chuyển đến trường tiếp theo.
hitmaneidos

27

Tìm kiếm trường có thể lấy tiêu điểm tiếp theo và hơn là gọi requestFocus().

TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT);
nextField.requestFocus();

2
Đây không phải là một câu trả lời đúng theo tiêu đề của câu hỏi này, nhưng về mặt kỹ thuật, nó là một câu trả lời hợp lệ. Câu trả lời dưới đây là thích hợp hơn.
Sean Glover

4
@SeanGlover, bạn đừng bao giờ sử dụng những từ như bên dưới vì vị trí của các câu trả lời liên tục thay đổi.
Nike

19

Chỉ là gợi ý, nếu bạn đang sử dụng

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

nó không hoạt động, hãy đảm bảo rằng EditText của bạn đang sử dụng một dòng duy nhất.

Ví dụ:

       editTextSample.setSingleLine();

1
Cảm ơn. Điều này nên được bạn chấp nhận câu trả lời. Chỉ cần gọi setSingleLine () TRƯỚC setImeOptions.
Herman

8

Luôn luôn cần thiết phải thêm các phím phụ ngoài các phím mặc định có sẵn trong QWERTYbàn phím ảo .

Sử dụng XML

<EditText android:text="@+id/EditText01" 
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:imeOptions="actionDone"/>

By Programmatic Way

An EditorInfolà lớp hữu ích nhất khi bạn phải xử lý bất kỳ loại đầu vào nào của người dùng trong ứng dụng Android của mình.

IME_ACTION_DONE: Hành động này thực hiện thao tác “đã xong” mà không cần nhập gì và IME sẽ bị đóng.

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);

Để biết thêm thông tin, bạn có thể truy cập http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html


1

Mặt dây chuyền kotlin

editText.imeOptions = EditorInfo.IME_ACTION_DONE

0
editText.setLines(1);
editText.setSingleLine(true);
editText.setImeOptions(EditorInfo.IME_ACTION_GO);

Tôi giải quyết vấn đề đảm bảo với một dòng duy nhất và chuyển sang editText tiếp theo khi nhấp vào enter


0

Trong trường hợp của tôi, hãy đặt imeOptions để khắc phục sự cố.

edtAnswer.maxLines = 1
edtAnswer.inputType = InputType.TYPE_CLASS_TEXT
edtAnswer.imeOptions = EditorInfo.IME_ACTION_NEXT

0

Bạn có thể làm điều này bằng cách

edittext.imeOptions = EditorInfo.IME_ACTION_DONE //for done button

hoặc là

edittext.imeOptions = EditorInfo.IME_ACTION_NEXT //for next button

Nhưng ... bạn cần hiểu rằng nếu bạn đang sử dụng bộ lọc cho văn bản thì bạn cần đặt

edittext.setSingleLine()
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.