Подтвердить что ты не робот

Как программно закрыть Android Soft KeyBoard?

В настоящее время я показываю программную клавиатуру, используя следующий код

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_HIDDEN);

И здесь я не связываю программную клавиатуру с Edittext, потому что я использовал приведенный выше код.

Теперь я хочу закрыть SoftKeyboard, поэтому в настоящее время я использую код ниже, но он не работает.

imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_HIDDEN);

Может ли кто-нибудь предложить мне, что использовать для закрытия softKeyboard?


Основываясь на следующем ответе, я хочу, чтобы вы поняли, что я не использую EditText, я использую макет, на котором я хочу показать клавиатуру и скрыть клавиатуру. Я хочу отправить событие клавиатуры клавиатуры в удаленную область bcoz, что я не использовал editText.

4b9b3361

Ответ 1

Я тестировал и это работает:

...
//to show soft keyboard
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

//to hide it, call the method again
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

Кстати, второй параметр вашего кода неверен, посмотрите здесь.

Ответ 2

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(EditTextName.getWindowToken(), 0);

Ответ 3

Используйте этот рабочий код:

InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

Ответ 4

Если вы хотите, вы можете использовать весь класс и вызвать метод KeyboardUtil.hideKeyBoard(контекст) везде, где:

public class KeyboardUtil
{
public static void hideKeyboard(Activity activity)
    {
        try
        {
            InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
            inputManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
         }
        catch (Exception e)
        {
            // Ignore exceptions if any
                Log.e("KeyBoardUtil", e.toString(), e);
        }
    }
}

Ответ 5

user942821 ответ за его скрытие:

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

Но это также помогает мне скрыть это:

imm.toggleSoftInput(0, 0);

Вы также можете попробовать:

imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);

При использовании '0' в первом параметре иногда клавиатура переключается в неправильных местах в странных обстоятельствах, что я еще не смог выяснить, как дублировать. Я все еще тестирую этот последний пример, но обновляюсь, когда узнаю больше.

Подробнее см. страницу документации toggleSoftInput.

Ответ 6

Это прекрасно работает

InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.hideSoftInputFromWindow(getWindow().getAttributes().token, 0);

Ответ 7

Закрытие/скрытие Softkey для Android

View view = this.getCurrentFocus();
if (view != null) {  
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

it working for me i hope it work for you..

Откройте Android Soft Keyboard

 InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        if (inputMethodManager != null) {
            inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
        }

Ответ 8

Вы также можете попробовать

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Ответ 9

Вот решение s, которое проверяет, видима ли клавиатура

    public static void hideKeyboard(Activity activity) {
        if (isKeyboardVisible(activity)) {
            InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
        }
    }

    public static boolean isKeyboardVisible(Activity activity) {
        ///This method is based on the one described at http://stackoverflow.com/questions/4745988/how-do-i-detect-if-software-keyboard-is-visible-on-android-device
        Rect r = new Rect();
        View contentView = activity.findViewById(android.R.id.content);
        contentView.getWindowVisibleDisplayFrame(r);
        int screenHeight = contentView.getRootView().getHeight();

        int keypadHeight = screenHeight - r.bottom;

        return
                (keypadHeight > screenHeight * 0.15);
    }

Ответ 10

InputMethodManager im =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
im.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

Ответ 11

Для скрытия клавиатуры

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mView.getWindowToken(), 0);

Здесь "mView" может быть любым видом, видимым на экране

Ответ 12

Этот код скрывает клавиатуру внутри onItemClick от AutoCompleteTextView

public void onItemClick(AdapterView<?> adapterViewIn, View viewIn, int indexSelected, long arg3) {
     // whatever your code does
     InputMethodManager imm = (InputMethodManager) getSystemService(viewIn.getContext().INPUT_METHOD_SERVICE);
     imm.hideSoftInputFromWindow(viewIn.getApplicationWindowToken(), 0);
}

Ответ 13

private void close() {
    this.requestHideSelf(0);
}

этот метод очень прост