Android’s API is very confusing when it comes to handling Android soft keyboard, to hide or show. But here I have compiled the ways to hide or show the keyboard programatically.
Let us quickly see how we can do that in this post. And not only hide or show keyboard but we are also going to learn something new.
Quick Navigation
Creating KeyboardUtil class
Let us first create a utility class to show or hide the soft keyboard from anywhere.
public class KeyboardUtil {
/**
*
* @param activity
*/
public static void hideKeyboard(Activity activity) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus();
if (view == null) {
view = new View(activity);
}
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
/**
*
*
* @param activity the activity instance
*/
public static void showKeyboard(Activity activity) {
View view = activity.getCurrentFocus();
if (view == null) view = new View(activity);
Context context = view.getContext();
InputMethodManager mgr = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(view, InputMethodManager.SHOW_FORCED);
}
}
Code language: Java (java)
Now this class will help us show or hide the soft keyboard on Android device.
Also Read: Android Data Binding: Replace findViewById() And More
TECHENUM
Hiding the soft keyboard in Android
You will see the android keyboard when you change the activity or fragment. When in reality the keyboard should be hidden once you change the fragment or whenever something hapens.
We have already created a utility class and now we are going to use it.
// just add this line whenever you want to hide the keyboard
// this = activity instance
KeyboardUtil.hideKeyboard(this);
// if you are in a fragment you can do
KeyboardUtil.hideKeyboard(getActivity());
Code language: Java (java)
Now that we have successfully hidden the keyboard. Let us show it programatically.
Showing the soft keyboard in Android
To show the keyboard programatically all we have to do is add the code below.
The keyboard will be shown taking in the focused object in the passed Activity
.
// just add this line whenever you want to show the keyboard
// this = activity instance
KeyboardUtil.showKeyboard(this);
// if you are in a fragment you can do
KeyboardUtil.showKeyboard(getActivity());
Code language: JavaScript (javascript)
Also Read: Android Notification Manager: Create Notification in Android
TECHENUM
Disabling keyboard on launching activity
Sometimes when we launch an activity with the EditText
on it. We will see the keyboard popup immediately.
But we can easily disable that from the AndroidManifest
. All you have to do is add the following line in the desired Activity
.
<activity
...
android:windowSoftInputMode="stateHidden|adjustResize">
</activity>
Code language: HTML, XML (xml)
You have to add the highlighted line. Or the next option available to you is invoke the KeyboardUtil.showKeyboard(this);
method on last line of onCreate()
method.
Also Read: Learn Android Room Persistence Library for SQLite Database
TECHENUM
That is all we have to do to show or hide the soft input keyboard in android.