>>EditText
setSelection( 위치)
커서 위치
setSelection( 시작위치, 끝위치 )
텍스트 선택
requestFocus()
포커스 주기
setInputType( type )
InputType.TYPE_NULL : 클릭해도 키보드 올라오지 않게..
InputType.TYPE_CLASS_NUMBER : 숫자자판
InputType.TYPE_TEXT_VARIATION_PASSWORD : 영문자판
> 요건 단말의 IME 에 따라 달라질 수 있음
setImeOption ( android:imeOptions )
입력 키보드의 옵션과 액션을 설정할 수 있다.
액션에 따라 키보드의 엔터, 다음, 검색 등의 완료 버튼이 적용된다.
해당 액션은 액션 리스너에서 판단 할 수 있다.
레이아웃에서 android:imeOptions="flagNoExtraUi" 의 경우 가로모드에서 전체 화면으로 입력 ui가 나타나지 않도록 한다.
기타 아래와 같은 옵션들이 존재...
EditorInfo.IME_ACTION_DONE
EditorInfo.IME_ACTION_SEARCH
EditorInfo.IME_ACTION_GO
EditorInfo.IME_ACTION_SEND
EditorInfo.IME_ACTION_NEXT
.
.
.
addOnEditorChangedListener
에디터 내용 변경 리스너 추가
setOnEditorActionListener
키보드의 액션에 대한 리스너 등록
seton_focusChangedListener
포커스 리스너
>> InputMethodManager
imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE);
키보드 보이기 - 플래그에 따라 onReceiveResult 가 호출되는 경우가 달라 지는데, 보여질때는 동일.
일반적인 경우.
imm.showSoftInput( mEditText , 플래그 );
0
SHOW_FORCED
SHOW_IMPLICIT
지정된 입력기를 띄우도록 하는 방법으로도 키패드가 올라온다.
사전에 input method를 등록한 경우에 사용 가능하다.
imm.showSoftInputFromMethod( mEditText.getWindowToken(),
InputMethodManager.SHOW_FORCE );
숨기기
일반적인 숨기기
imm.hideSoftInputFromWindow( mEditText.getWindowToken(), 플래그 );
또는
imm.hideSoftInputFromIputMethod( mEditText.getWindowToken(), 플래그 );
차이점은 윈도우에게 보여지는 입력기를 숨겨달라는 것과, 현재 입력기에게 숨기라고 요청하는 것이다. 서로 다른 입력기가 뜨는 경우는 활성화된 입력기에게 hide 요청을 해야 한다.
해당 바인더의 입력기를 토글하는 방법으로도 숨길 수 있다.
현재 보이고 있을때는 hide flag가 실행된다.
숨길때에는 imm.isActive() 를 검사해 사용한다.
imm.toggleSoftInputFromWindow( mEditText.getWindowToken(), show flag, hide flag );
플래그 값은 보통 0 이나 SHOW_IMPLICIT , SHOW_FORCE / HIDE_IMPLICIT_ONLY, HIDE_NOT_ALWAYS 등이 사용된다.
>>메니페스트에서의 설정 android:windowSoftInputMode="모드"
stateVisible : 자동 보이기
stateHidden : 자동으로 보이지 않음
stateAlwaysHidden : 에디터외에 포커스가 있을때 숨기기
adjustPan : 키보드 보일때 레이아웃이 유지됨
adjustResize : 키보드에 따라 레이아웃 조정
>>윈도우 매니저를 통한 키보드 관련 설정
getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_... )
'프로그래밍 > Android' 카테고리의 다른 글
Custom layout, layoutinflater (0) | 2011.10.11 |
---|---|
MediaStore 썸네일 데이터 관련 정리 (0) | 2011.09.26 |
뷰의 크기 변경,이동 (0) | 2011.09.23 |
리스트뷰 메쏘드 몇개 (0) | 2011.09.22 |
SQLite Database (0) | 2011.09.20 |
MediaStore 오디오 재생목록 (0) | 2011.09.17 |
List adapter (0) | 2011.09.15 |
낙서 (0) | 2011.09.07 |
터치 이벤트 처리순서 (0) | 2011.09.01 |
천천히 로딩되는 리스트 아이템 (0) | 2011.08.22 |