2010-08-11 21 views
58

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

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

Trả lời

136

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

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT); 
+0

nếu không, nó sẽ chèn một dòng mới và nhảy vào dòng đó =) –

20

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

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

Đây không phải là một câu trả lời đúng trong tham chiếu đến tiêu đề của câu hỏi này, nhưng nó là về mặt kỹ thuật một câu trả lời hợp lệ. Câu trả lời dưới đây phù hợp hơn. –

+5

@SeanGlover Oh, ** bên dưới ** từ rất chủ quan ... –

+2

@SeanGlover bạn không bao giờ nên sử dụng các từ như *** bên dưới *** vì vị trí của câu trả lời cứ thay đổi. – Nike15

7

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

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

Một EditorInfo là lớp hữu ích nhất khi bạn phải đối phó với bất kỳ loại người dùng nhập vào trong ứng dụng Android của bạn.

IME_ACTION_DONE: Hành động này thực hiện thao tác "thực hiện" không có gì để nhập 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

8

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

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

nó không hoạt động, hãy chắc chắn rằng EditText bạn đang sử dụng một dòng đơn.

Ví dụ:

 editTextSample.setSingleLine(); 
Các vấn đề liên quan