2012-10-23 2 views
3

사용자가 소프트 키보드를 닫지 못하게 할 수 있습니까? 즉, 내 활동이 보이는 동안 항상 화면에서 키보드를 사용할 수 있습니다. 이것이 가능한가? 그렇다면 어떻게 달성 할 수 있습니까? 당신은 다음과 같은 onKeyUp()onKeyDown() 메소드를 오버라이드 (override) 할 필요가Android가 키보드를 닫지 못하도록합니다.

+0

당신은 무엇을 시도 했습니까? – Sieryuu

+0

AndroidManifest.xml의 활동 정의에 android : windowSoftInputMode = "stateAlwaysVisible"을 추가했습니다. 또한 InputMethodManager를 사용하여 다양한 조합을 시도했지만 아무 것도 작동하지 않았습니다. –

답변

0

,

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK)  
    { 
     ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput 
       (InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY); 
    } 
    return super.onKeyUp(keyCode, event); 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK)  
    { 
     ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput 
       (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 
    } 
    return super.onKeyDown(keyCode, event); 
} 
또한 다음 코드를 살펴 가지고 OnEditorActionListener를 사용하여 어느 방법으로 시도 할 수

,

EditText txtMyEdit = (EditText) findViewById(R.id.txtEdit); 
txtMyEdit.setOnEditorActionListener(new OnEditorActionListener() 
{ 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 
    { 
     if (actionId == EditorInfo.IME_ACTION_DONE) 
     { 
      // your additional processing... 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 
}); 
+1

이 방법은 다소 효과가 있지만 포커스를 변경해도 키보드가 사라지게하는 유일한 문제가 있습니다. 항상 화면에 키보드가 있어야합니다. –

0

이를 포커스에 관계없이 키보드를 강제로 움직여야합니다.

관련 문제