본문 바로가기

나의 플랫폼/안드로이드

[Android][스크랩] edittext 관련 사항들..

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

>>EditText

 

setSelection( 위치)

커서 위치

 

setSelection( 시작위치, 끝위치 )

텍스트 선택

 

requestFocus() 

포커스 주기

 

setInputType( type )

InputType.TYPE_NULL : 클릭해도 키보드 올라오지 않게..

InputType.TYPE_CLASS_NUMBER : 숫자자판

InputType.TYPE_TEXT_VARIATION_PASSWORD : 영문자판

    > 요건 단말의 IME 에 따라 달라질 수 있음

 

setImeOption ( android:imeOptions )

입력 키보드의 옵션과 액션을 설정할 수 있다.

액션에 따라 키보드의 엔터, 다음, 검색 등의 완료 버튼이 적용된다.

해당 액션은 액션 리스너에서 판단 할 수 있다.

 

EditorInfo.IME_ACTION_DONE

EditorInfo.IME_ACTION_SEARCH

EditorInfo.IME_ACTION_GO

EditorInfo.IME_ACTION_SEND

EditorInfo.IME_ACTION_NEXT

.

.

.

 

addOnEditorChangedListener

에디터 내용 변경 리스너 추가

 

setOnEditorActionListener

키보드의 액션에 대한 리스너 등록

 

setOnFocusChangedListener

포커스 리스너

 

 

 

 

>> 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_... )


http://m.blog.daum.net/undyingheart/17397971

## 이블로그는 어디까지는 찾았던 부분을 잊지 않기 위해 올려놓은 것 입니다.

    내용이 부실해도 이해해 주시길 바랍니다.