1

Я попытался закрыть свою пользовательскую клавиатуру после элемента click в gridview. Я пытаюсь сделать это в классе BaseAdapter. контекст - из InputMethodService.Как закрыть/скрыть пользовательскую клавиатуру Android

До сих пор я пытался ниже:

FrameLayout scroll = (FrameLayout)inflater.inflate(R.layout.keyboard, null); 
InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(scroll.getWindowToken(), 0); 

-

imm.toggleSoftInput(0,InputMethodManager.HIDE_IMPLICIT_ONLY); 

-

scroll.setVisibility(View.INVISIBLE); 

Благодарности

ответ

1

Я просто скопировав мое приложение здесь, оно отлично подходит для нас:

public static void hideKeyboard(View v) { 
     try { 
     v.clearFocus(); 
     InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
     } catch (Exception e) { 
     // we all saw shit happening on this code before 
     } 
    } 
+0

не получает никакой ошибки, но клавиатура все еще показывает –

0

Вы можете поместить этот метод в открытый класс и называть его там, где это необходимо.

public static void hideKeyboard(Context ctx) { 
InputMethodManager inputManager = (InputMethodManager) ctx 
.getSystemService(Context.INPUT_METHOD_SERVICE); 

// check if no view has focus: 
View v = ((Activity) ctx).getCurrentFocus(); 
if (v == null) 
    return; 

inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0); 
} 

относится к моему ответу here

+0

я получить не могу бросить ошибки Android.app.Activity моего контекста класс расширяет InputMethodService :(я не могу использовать активность (если есть способ, которым я не знаю) –

+0

Если вы на клавиатуре, вы скрываете себя через requestHideSelf. Но у вашей клавиатуры, вероятно, нет gridView, поэтому я думаю, вы немного смущены. –

Смежные вопросы