2013-08-23 4 views
1

EditText를 삭제하기위한 클리어 버튼이 있습니다.버튼을 누른 후 키보드 표시

public void clearEtSearch(View v) { 
    etSearch.setText(""); 
    etSearch.requestFocus(); 
    showKeyboard(etSearch); 
} 

내가 숨어와 키보드를 표시하도록 변경에서 아래의 코드를 촬영했다,하지만 내가 뭘 잘못

private void showKeyboard(View view) { 
    InputMethodManager manager = (InputMethodManager) view.getContext() 
      .getSystemService(INPUT_METHOD_SERVICE); 
    if (manager != null) 
     manager.showSoftInputFromInputMethod(view.getWindowToken(), 0); 
} 

을 작동하지 않습니다 :

<Button 
     android:id="@+id/bClearText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right|center_vertical" 
     android:layout_marginRight="10dp" 
     android:onClick="clearEtSearch" 
     android:background="@drawable/delete" /> 

이 방법

은 글고 치기가 해제? 제 코드를 수정 해주십시오.

답변

2

잘 모르겠지만 INPUT_METHOD_SERVICE 대신 Context.INPUT_METHOD_SERVICE을 사용해보세요. 일부는 Forcing the Soft Keyboard open 질문입니다.

public void clearEtSearch(View v) { 
    etSearch.setText(""); 
    etSearch.requestFocus(); 
    InputMethodManager manager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
    manager.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 
} 

또는

public void clearEtSearch(View v) { 
    etSearch.setText(""); 
    etSearch.requestFocus(); 
    InputMethodManager manager= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    manager.showSoftInput(etSearch, InputMethodManager.SHOW_FORCED); 
} 
을 :

public void clearEtSearch(View v) { 
    etSearch.setText(""); 
    etSearch.requestFocus(); 

    InputMethodManager manager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
    manager.showSoftInputFromInputMethod(etSearch.getWindowToken(), 0); 

} 

필요에 따라이 다음과 같이 InputMethodManager의 다른 상수를 시도 할 수 있습니다 :

당신은 또한 다음과 같은 작품이 경우 How to show soft-keyboard when edittext is focused 참조 볼 수 있습니다

코드 r을 시도하지 않았습니다. 어떤 사람이 일할 것인지 확실하지 않습니다. 많은 관련 질문이 있습니다. 희망이 당신을 위해 잘 작동합니다.

0

이 방법을 사용하고 즐길 수

public void showSoftKeyboard() { 
     try { 
      InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); 
      inputMethodManager.toggleSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.SHOW_FORCED, 0); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
관련 문제