How to remove focus from EditText when user is done editing?
You could use a xml attribute,
android:cursorVisible
or you can do it in code with this method.
setCursorVisible(boolean).
Android: Force EditText to remove focus?
You can add this to onCreate
and it will hide the keyboard every time the Activity
starts.
You can also programmatically change the focus to another item.
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
how can full clear focus in editText , just like press button DONE on softkeyboard
Firstly, we can use cleareFocus
method to remove the focus.
editTextView.clearFocus()
But when this method is called, as source code comment says:
When not in touch-mode, the framework will try to give focus to the first focusable View from the top after focus is cleared. Hence, if this
View is the first from the top that can take focus, then all callbacks
related to clearing focus will be invoked after which the framework will
give focus to this view.
so after you call it, the first element will stay get the focus. so we should set the touch-mode
true in parent layout.
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>
<EditText android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
How to remove focus from single editText
check this question and the selected answer: Stop EditText from gaining focus at Activity startup It's ugly but it works, and as far as I know there's no better solution.
android edittext remove focus after clicking a button
Put this in your button listener:
InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
EDIT
The solution above will break your app if no EditText
is focused on. Modify your code like this:
add this method to you class:
public static void hideSoftKeyboard (Activity activity, View view)
{
InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);
}
Then, in your button listener, call the method like this:
hideSoftKeyboard(MainActivity.this, v); // MainActivity is the name of the class and v is the View parameter used in the button listener method onClick.
How to remove focus from edittext after setting sometext intially in programmatically?
I achieved it by removing focus when ondrawerClosed being called by navigation drawer
//In activity or fragment where we have navigation drawer
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
interfaceListener.removeFocus();
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
};
//In fragment
public void removeFocus(){
editext.clearFocus();
anotherLinearLayout.requestFocus();
}
How to clear focus for EditText?
Set in your parent layout next attributes:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true" >
And now, when activity
starts this layout getting default focus.
Also we can remove focus from children views in runtime (e.g. after finishing child editing):
findViewById(R.id.mainLayout).requestFocus();
or
Look in the AndroidManifest.xml element.
android:windowSoftInputMode="stateHidden"
It always hide key board when entering the activity.
How to lose the focus of a edittext when done button in the soft keyboard is pressed?
Call clearFocus
method of EditText
to lose focus when done button is clicked from soft-keyboard. do it as:
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId==EditorInfo.IME_ACTION_DONE){
//Clear focus here from edittext
editText.clearFocus();
}
return false;
}
});
and also add android:imeOptions="actionDone"
in edittext xml
Related Topics
Remove Green Border Around Android Application
How to Keep a Bottom Nav Bar from Being Pushed Up on Keyboard Shown
Android: Keep Service Running When App Is Killed
Adb Is Not Detecting My Android Device on Ubuntu
How to Prevent User Go Back to Protected Page After Logout
How to Display a Loading Spinner While Getting Data from Firestore
How to Remove Background Resource of Button
Keep Screen Alive and App in Front of Lockscreen
Eclipse Compiles Successfully But Still Gives Semantic Errors
How to Get the Current Gps Location Programmatically in Android
How to Set Value for Each Item Button Increase and Decrease Click and Set That Value in Text View
Check If an Email Exists Before Creating a User Firebase Android
Update Some Specific Field of an Entity in Android Room
Touchableopacity Not Working Inside an Absolute Positioned View
How to Get Root Access on Android Emulator
How to Open Fragment from Recyclerview Adapter
Add Text to Image in Android Programmatically
How to Make Image Fill Relativelayout Background Without Stretching