2012-01-17 4 views
2

내가하고 싶은 일은 : 나는 EditText를 가지고 있는데, 사용자가 그것을 클릭 할 때, 사용자는 EditText와 동일하게 키보드를 보여주지 않고 캐럿 위치를 이동할 수있다.EditText onTouch에 키보드가 나타나지 않게하는 방법은 무엇입니까?

나는 setInputType (0)으로 시도했다. 키보드를 완전히 숨기지 만 커서는 나타나지 않습니다.

이렇게 할 방법이 있습니까?

감사의

답변

4

다음 트릭이 저에게 효과적입니다. 캐럿과 소프트 키보드는 모두 editText의 onTouch 이벤트를 활성화합니다. 따라서 터치 이벤트를 호출 한 다음 키보드를 수동으로 숨 깁니다.

myEditText.setOnTouchListener(new OnTouchListener() { 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     final boolean ret = dialerNumber.onTouchEvent(event); 
     final InputMethodManager imm = ((InputMethodManager) myContext 
       .getSystemService(Context.INPUT_METHOD_SERVICE)); 
     try{ 
      imm.hideSoftInputFromWindow(myEditText.getApplicationWindowToken(), 0); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     return ret; 
}); 
0

나는 아예 키보드를 억제 시도하지 않은,하지만 난 InputMethodManager.hideSoftInputFromWindow 방법을 사용하기 전에 수동으로 소프트 키보드 숨겨져 있습니다.

+0

그래, 키보드를 숨기고 있지만 커서 버튼을 숨 깁니다. 내가하고 싶은 것은 EditText를 가지고, 클릭 할 때 텍스트의 캐럿을 움직일 수있는 작은 커서를 보여 주지만 그럴 수는 없다고 생각합니다. –

0

작동합니까?

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN) 
+0

글쎄, 키보드를 숨기고 싶습니다.하지만 EditText 아래에 커서 버튼을 두지 만 가능한지 모르겠습니다. –

관련 문제