어허

[Android] EditText 키보드 바로 올라오게 하기 본문

개발/Android

[Android] EditText 키보드 바로 올라오게 하기

AKDK 2016. 9. 23. 16:17
728x90


EditText 에 focus 맞추고 키보드 바로 올라오게 하기


포커스 맞추기

올라온 키보드로 사용할 EditText에 포커스를 맞춰주어야 한다

키보드를 바로 올리는 이유가

사용자가 EditText를 터치하지 않고도 바로 입력을 시작하게끔 하려고 하는것인데

포커스를 맞춰주지 않으면 키보드만 덜렁! 올라와있고 원하는 곳에 입력하기위해서는

입력할 곳에 터치를 한번 해주어야 된다.

그러면 자동으로 뜨지않아도 터치하면 android가 띄워주기때문에 아무 의미없는 짓이되어버린다.


1. layout xml

<EditText
android:id="@+id/rnumber_edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:digits="0123456789"
android:hint="----"
android:layout_gravity="center"
android:maxLength="4"
android:textSize="60sp">

<requestFocus />

</EditText>


2. java code

randomNumberEditText = (EditText) findViewById(R.id.rnumber_edittext);
randomNumberEditText.requestFocus();


1번과 2번 모두 동일하게 잘 동작하는것 같고 입맛에 골라 사용하면됨.



키보드 바로 올라오게 하기 ( 작업후 내려줘야 함 )


1. 키보드 올리기

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);


2. 키보드 내리기

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);


키보드 올리는 다른방법인데 테스트 해보니 동작을 안한다

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(randomNumberEditText, InputMethodManager.SHOW_IMPLICIT);



728x90
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공유하기 링크
Comments