Hiding the android keyboard for EditText
Whenever I click in the EditText
the Android keyboard popup window appears, b开发者_StackOverflow中文版ut I don't want the keyboard to pop up.
I want to permanently hide the android keyboard popup for my current application.
How can I do this?
Setting the flag textIsSelectable
to true
disables the soft keyboard.
You can set it in your xml layout like this:
<EditText
android:id="@+id/editText"
...
android:textIsSelectable="true"/>
Or programmatically, like this:
EditText editText = (EditText) findViewById(R.id.editText);
editText.setTextIsSelectable(true);
The cursor will still be present, you'll be able to select/copy/cut/paste
but the soft keyboard will never show.
You may try to fake your EditText with a Button like this:
<Button
android:id="@+id/edit_birthday"
style="@android:style/Widget.EditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_birthday"/>
In the manifest:
<activity
android:name=".YourActivity"
.
.
.
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
Works for all Android versions.
In your XML use the property android:textIsSelectable="true"
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
.
.
.
android:textIsSelectable="true"/>
And, in your Java class:
editText1.setShowSoftInputOnFocus(false);
In Kotlin:
editText1.showSoftInputOnFocus = false
Solution can be found here :
public void onCreate(Bundle savedInstanceState) {
edittext = (EditText) findViewById(R.id.EditText01);
edittext.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(edittext.getApplicationWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
}
return false;
}
});
}
These two line should do what you want:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Try This
public void disableSoftKeyboard(final EditText v) {
if (Build.VERSION.SDK_INT >= 11) {
v.setRawInputType(InputType.TYPE_CLASS_TEXT);
v.setTextIsSelectable(true);
} else {
v.setRawInputType(InputType.TYPE_NULL);
v.setFocusable(true);
}
}
Try to add this in yout onCreate()
method.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Not tested but It Should work!!
In your xml file you can use this:
android:editable="false"
In your xml set attribute editable to false. it won't let you edit the text and the keyboard will not be opened.
<EditText
android:editable="false"
/>
精彩评论