- 아래와 같이 InputMethodManager 사용 시 -
public class Save_Option extends Activity implements OnClickListener {
EditText edittext ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_save_option);
edittext = (EditText)findViewById(R.id.edittext );
edittext .setClickable(false);
edittext .setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.edittext :
InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(edittext .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
break;
}
}
일반적인 클릭하면 소프트키보드가 뜨진 않지만, 에디트 텍스트를 빠르게 계속 클릭하면 소프트키보드가 뜬다.
(클릭 속도 인식 문제인듯)
- 아래와 같이 설정 시 -
edittext.setInputType(0);
소프트키보드는 안뜨지만, 커서도 안보인다.
- OnClickListener 대신 OnTouchListener 사용 시 -
버튼 클릭 터치 시간에 비례.(한번 터치가 클릭 한번이라고 생각하면 안됨. 최소 3~4번 클릭되는 듯.)
[해결] 이 모든 것은 Target Version 때문이었습니다..
바로 위에 터치리스너를 제외한 삽질들은 Android 4.0 이전까진 정상적으로 다 되었다고 합니다. Android 4.0으로 넘어오면서 저 위의 삽질처럼 변했다고 합니다.(그냥 안됨..)
edittext.setInputType(0); -> edittext.setInputType(InputType.TYPE_NULL);
그냥 정수값 0 이 아닌 InputType.TYPE_NULL와 같은 정의된 상수를 사용해야 됩니다.
키보드는 숨겨지면서 커서는 유지(활성) 상태가 됩니다.
[또 다른 문제점 발견] 디바이스마다 다릅니다!!
위에서는 보드에서 테스트한 것을 바탕으로 포스팅했습니다. 제 폰으로 테스트해봤을 때, 여전히 커서가 사라져 있는 것을 발견했습니다. 갤럭시 노트 1을 사용하고 있습니다..
'안드로이드 > 참고 자료' 카테고리의 다른 글
Manifest 에서 android:screenOrientation 의 위치 (0) | 2013.02.01 |
---|---|
error : Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE (0) | 2013.01.31 |
Error Message - can't open file for reading (0) | 2013.01.25 |
EditText 클릭 시 기본 키보드를 숫자 키보드로 바꾸기 (0) | 2012.06.26 |
[안드로이드] 버튼 클릭 이벤트 (0) | 2012.05.25 |