imeOptions "actionNext"프로그래밍 방식-다음 필드로 이동하는 방법?


92

레이아웃 XML 에서 가상 키보드에 android:imeOptions="actionNext"추가 할 Next버튼 을 지정하고 이를 클릭하면 포커스가 다음 필드로 이동합니다.

프로그래밍 방식으로 수행하는 방법-예를 들어 이벤트 트리거 포커스를 기반으로 다음 필드로 이동하는 방법은 무엇입니까?

답변:


192

IME 옵션에 EditorInfo 클래스의 상수를 사용할 수 있습니다. 처럼,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

예 그렇지 않으면 새로운 라인을 삽입하고) 그 =로 이동
케르 Baltaci

2
이것은 OP의 질문에 어떻게 대답합니까? 다음 필드로 자동으로 이동하지 않습니다.
hitmaneidos

27

포커스 가능한 다음 필드를 검색하고 invoke requestFocus().

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

2
이것은이 질문의 제목과 관련하여 정답이 아니지만 기술적으로 유효한 대답입니다. 아래 답변이 더 적절합니다.
Sean Glover

4
@SeanGlover 답변의 위치가 계속 변하기 때문에 아래와 같은 단어를 사용해서는 안됩니다 .
Nike15

20

당신이 사용하는 경우 그냥 제안

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

작동하지 않으면 EditText가 한 줄을 사용하고 있는지 확인하십시오.

예 :

       editTextSample.setSingleLine();

1
감사. 이것은 받아 들여진 대답이어야합니다. setImeOptions 전에 setSingleLine ()을 호출하십시오.
Herman

8

가상 QWERTY키보드 에서 사용할 수있는 기본 키 외에 추가 키를 항상 추가해야합니다 .

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 EditorInfo은 Android 애플리케이션에서 모든 유형의 사용자 입력을 처리해야 할 때 가장 유용한 클래스입니다.

IME_ACTION_DONE: 이 작업은 입력 할 내용이없는 경우 "완료"작업을 수행하고 IME가 닫힙니다.

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);

자세한 내용은 http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html을 참조하십시오.


1

코 틀린 펜던트

editText.imeOptions = EditorInfo.IME_ACTION_DONE

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

한 줄로 문제를 해결하고 Enter를 클릭하면 다음 editText로 이동합니다.


0

제 경우에는 imeOptions를 설정하여 문제를 해결하십시오.

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

0

당신은 이것을 할 수 있습니다

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

또는

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

하지만 ... 당신이 편집 텍스트에 필터를 사용한다면

edittext.setSingleLine()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.