액티비티 시작 시 키보드 올리는 2가지 방법입니다. 액티비티에서 소스 코드 입력하는 방법과 매니페스트에서 설정하는 방법이 있습니다.
1. 액티비티에서 소스 추가하는 방법
private EditText ReplyEdit;
ReplyEdit = (EditText)findViewById(R.id.reply_write_edit);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(ReplyEdit, 0);
ReplyEdit는 EditText 변수명입니다. 단, 이렇게 하는 경우에도 키보드가 올라오지 않을 수 있습니다. 이유는 ReplyEdit의 커서가 포커싱이 되지 않은 상태에서 showSoftInput을 해서 그렇습니다.
private EditText ReplyEdit;
ReplyEdit = (EditText)findViewById(R.id.reply_write_edit);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(ReplyEdit, 0);
ReplyEdit.postDelayed(new Runnable()
{
@Override
public void run()
{
ReplyEdit.requestFocus();
imm.showSoftInput(ReplyEdit, 0);
}
}, 100);
위의 방법으로 postDelayed를 주고 requestFocus를 준 다음 showSoftInput을 하면 정상적으로 키보드가 올라옵니다.
버튼이나 액션처리가 아닌 액티비티 시작 시 키보드를 바로 띄우기 위해서는 위 두 번째 방법을 추천합니다.
2. 메니페스트(AndroidManifest.xml) 에서 설정하는 방법
<activity android:name="oatp.co.kr.appletree.Activity_Reply_write" android:windowSoftInputMode="stateAlwaysVisible"/>
추가) 키보드 내리는 방법
private EditText ReplyEdit;
ReplyEdit = (EditText)findViewById(R.id.reply_write_edit);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(ReplyEdit.getWindowToken(), 0);
반응형
그리드형
'IT > Android' 카테고리의 다른 글
[안드로이드] 색상코드에 투명도 주는 방법 (8) | 2020.05.26 |
---|---|
[안드로이드] androidx 마이그레이션 하는 방법 (0) | 2020.05.14 |
[안드로이드] 프로젝트와 외부 라이브러리 minsdkversion이 맞지 않을 때 해결방법 (0) | 2020.05.12 |
[안드로이드] 스크롤뷰로 구성된 엑티비티 하단에 광고 고정으로 보여주기 (0) | 2020.04.28 |
구글 플레이 마켓에 앱이 삭제 된 경우. 이렇게 해결 하세요. (5) | 2020.02.21 |
[안드로이드] Unable to locate adb 에러 해결 (0) | 2019.05.28 |
스크롤뷰 내부 특정뷰로 포커스되는 현상 막기 (0) | 2018.09.04 |
[오류] is not translated in ko (0) | 2017.03.08 |