Android 에서 EditText View를 사용하다보면,
focus 가 EditText View 에 가 있어서 cursor 가 깜빡이는 것이 눈에 거슬린다.
그렇다고 cursor 를 마구 없애버리면,
키 입력이 불편하다.
이 글에서는 EditText View를 이용하여 성가신(?) cursor을 필요할 때만 보는 방법을 설명한다.
순서는 다음과 같다.
1. cursor 를 제거하는 방법 (by java code)
2. 클릭시, 키보드를 enable하는 방법
3. 입력완료후, 다시 cursor를 없애는 방법
4. 전체 코드 (in onCreateView(....)
세부 코드는 다음과 같으며, 다음의 코드는 MainActivity 와 같이 Activity를 상속받은 class에서 구현해야 한다.
참고로 아래의 코드는 fragment class에서 테스트되었다.
1. cursor 를 제거 (by java code)
EditText et = (EditText)view.findViewById(R.id.my_name); et.setInputType(EditorInfo.TYPE_NULL); // setCursorVisible(false); 도 가능하다. |
※ 구글링을 하면 다른 방법들도 더 나오는데, 여기에서는 코드를 통한 방법만 설명한다.
2. 클릭시, 키보드를 enable하는 방법
onClickListener를 통해 키 입력시, input type을 변경한다.
et.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ((EditText)view).setInputType(EditorInfo.TYPE_CLASS_TEXT); // setCursorVisible(true); 도 가능하다. } }); |
3. 입력 완료후, 다시 disable한다.
et.setOnEditorActionListener(new TextView.OnEditorActionListener() { |
※ OnEditorActionListener(...) 는 키 입력 완료 이후에 발생하는 event이다.
4. 전체코드
|
'Programming > Android' 카테고리의 다른 글
[Android ]MISSING_PERMISSION_ACCESS_WIFI_STATE (0) | 2017.11.12 |
---|---|
[Android] MISSING_PERMISSION_BLUETOOTH 에러 (0) | 2017.11.12 |
[Android] Get String Value from resource file (0) | 2017.10.09 |
[Android Studio] Change Font (폰트 변경) (0) | 2017.10.01 |
[Android] RuntimeException: Unable to start activity (0) | 2017.09.10 |