Когда я нажимаю кнопку EditText
, появляется всплывающее окно клавиатуры Android, но я не хочу, чтобы клавиатура всплывала.
Я хочу навсегда скрыть всплывающее окно клавиатуры Android для моего текущего приложения.
Как я могу это сделать?
Когда я нажимаю кнопку EditText
, появляется всплывающее окно клавиатуры Android, но я не хочу, чтобы клавиатура всплывала.
Я хочу навсегда скрыть всплывающее окно клавиатуры Android для моего текущего приложения.
Как я могу это сделать?
Установка флага textIsSelectable
на true
отключает мягкую клавиатуру.
Вы можете установить его в своем XML-макете следующим образом:
<EditText
android:id="@+id/editText"
...
android:textIsSelectable="true"/>
Или программно, например:
EditText editText = (EditText) findViewById(R.id.editText);
editText.setTextIsSelectable(true);
Курсор по-прежнему будет присутствовать, вы сможете select/copy/cut/paste
, но мягкая клавиатура никогда не будет отображаться.
Вы можете попытаться подделать свой EditText кнопкой Button следующим образом:
<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"/>
В манифесте:
<activity
android:name=".YourActivity"
.
.
.
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
Решение можно найти здесь:
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;
}
});
}
Эти две строки должны делать то, что вы хотите:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Попробуйте это
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);
}
}
Попробуйте добавить это в метод yout onCreate()
.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Не тестировалось, но должно работать!
В вашем XML файле вы можете использовать это:
android:editable="false"