package cgeo.geocaching.activity; import android.support.annotation.NonNull; import android.app.Activity; import android.content.Context; import android.view.View; import android.view.inputmethod.InputMethodManager; /** * Class for hiding/showing the soft keyboard on Android. * */ public class Keyboard { private final Activity activity; public Keyboard(@NonNull final Activity activity) { this.activity = activity; } public void hide() { // Check if no view has focus: final View view = activity.getCurrentFocus(); if (view != null) { final InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } public void show(final View view) { view.requestFocus(); ((InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, 0); } public void showDelayed(final View view) { view.postDelayed(new Runnable() { @Override public void run() { final InputMethodManager keyboard = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); keyboard.showSoftInput(view, 0); } }, 50); } }