본문 바로가기

프로그래밍/Android

Edittext 관련 사항들

 

>>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