티스토리 뷰
반응형
EditText Focus 제거에 대한 실험!!
- Dialog 호출 시 키패드 활성화 되는 문제를 해결하고자 구글링 후 최종 결과 기록.
1. EditText를 감싸고 있는 LinearLayout에 옵션 추가.
android:focusable="true"
android:focusableInTouchMode="true"
-> 포커스는 사라지지만 키패드는 활성화 됨.
2. edittext.clearFocus() 호출.
-> 변화없음.
3. Edittext XML에 옵션을 주고 키패드 닫힘 매서드 호출.
android:focusable="true"
android:focusableInTouchMode="true"
-> 변화없음.
4. delay를 통한 focus제거.
-> 키패드 내려감!!!
-> 원인은 화면이 그려지기 전 keypad 내리는 코드 호출 시 view를 찾지 못하기 때문에 코드가 먹히지 않음.
최종 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | protected void onCreate(Bundle savedInstanceState) { Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { hideKeypad(); } }, 100); } public void setFocus() { if (mEditText.requestFocus()) ((InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(mEditText, 0); } public void hideKeypad() { View view = getCurrentFocus(); if (view != null) { InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } } | cs |
반응형
'Android > 자료정리' 카테고리의 다른 글
[android] retrofit - encode error (%2c, %3D, %0A...) (0) | 2017.12.04 |
---|---|
[Android][FireBase] DebugView 사용해보기~ (0) | 2017.10.17 |
[Android] dialog keypad focus 처리. /키패드 활성화 시키기 (2) | 2017.06.14 |
[Android Studio]NumberPicker사용 / 년도 표시/ 타이틀 제거/ 라인 제거 (0) | 2016.01.07 |
[Android Studio][Mac] 코드 라인 수 표시. (1) | 2015.12.22 |
댓글
반응형