EditText Keyboard 내리기
EditText Keyboard
내리기
ㆍ 간단하게 EditText를 사용할때 나오는 Keyboard를
강제로 내리는 방법에 대해 알아보도록 하겠습니다
ㆍ 강제로 내리는 경우는 매우 다양하겠지만, 간단하게
로그인 화면이라고 가정하고 테스트를 해보겠습니다.
어떻게 내리나?
어렵지 않습니다.
딱 2줄만 알고 있으면 됩니다.
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(EditText.getWindowToken(), 0);
요렇게만 써주시면 끝납니다.
직접 확인해보자!
이런 로그인 화면이 있다고
가정했을때,
사용자의 편의를 위해서
Back키 외에도 화면의
바깥 영역을 터치하면 키보드가
내려가도록 하면 괜찮겠죠?
그리고 로그인 버튼을 눌렀을때
성공해서 다른 액티비티나 Fragment로
넘어가면 모르겠지만,
로그인이 실패하거나, 또는 화면을 넘길때
Viewpager나 다른 Dialog로 띄우는 형태로
넘긴다면 위에 키보드가 그대로 남아있을 수 있습니다.
그래서 로그인 버튼을 눌렀을때에도 키보드를
강제로 내리도록 하겠습니다.
[activity.xml]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.tistory.itpangpang.edittextkeyboard.MainActivity">
<EditText
android:id="@+id/et_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="아이디를 입력하세요"
/>
<EditText
android:id="@+id/et_pw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="패스워드를 입력하세요"
/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="로그인"/>
</LinearLayout>
[MainActivity.java]
public class MainActivity extends AppCompatActivity
{
InputMethodManager imm;
EditText et_id;
EditText et_pw;
Button btn;
LinearLayout ll;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ll = (LinearLayout)findViewById(R.id.ll);
btn = (Button)findViewById(R.id.btn);
et_id = (EditText)findViewById(R.id.et_id);
et_pw = (EditText)findViewById(R.id.et_pw);
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
ll.setOnClickListener(myClickListener);
btn.setOnClickListener(myClickListener);
}
View.OnClickListener myClickListener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
hideKeyboard();
switch (v.getId())
{
case R.id.ll :
break;
case R.id.btn :
break;
}
}
};
private void hideKeyboard()
{
imm.hideSoftInputFromWindow(et_id.getWindowToken(), 0);
imm.hideSoftInputFromWindow(et_pw.getWindowToken(), 0);
}
}
끝!
'안드로이드(android) > 위젯(Widget)' 카테고리의 다른 글
descendantFocusability - Child View의 Focus를 제어하자 (3) | 2016.11.26 |
---|---|
EditText Keyboard show/hide 이벤트 잡기 (3) | 2016.11.25 |
TextView, Button 등등 Focus 주기 (0) | 2016.11.22 |
Switch(스위치) 커스텀해서 사용하기 (2) | 2016.10.27 |
TextView 특정문자열 색깔넣기(setSpan, html) (1) | 2016.10.23 |