Скрытие клавиатуры Android для EditText

Когда я нажимаю кнопку EditText, появляется всплывающее окно клавиатуры Android, но я не хочу, чтобы клавиатура всплывала.

Я хочу навсегда скрыть всплывающее окно клавиатуры Android для моего текущего приложения.

Как я могу это сделать?

Ответ 1

Установка флага 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, но мягкая клавиатура никогда не будет отображаться.

Ответ 2

Вы можете попытаться подделать свой 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"/>

Ответ 3

В манифесте:

  <activity
        android:name=".YourActivity"
       .
       .
       .
        android:windowSoftInputMode="stateAlwaysHidden" >
   </activity>

Ответ 4

Решение можно найти здесь:

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;
      }
   });
}

Ответ 5

Эти две строки должны делать то, что вы хотите:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

Ответ 6

Попробуйте это

 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);
            }
        }

Ответ 7

Попробуйте добавить это в метод yout onCreate().

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Не тестировалось, но должно работать!

Ответ 8

В вашем XML файле вы можете использовать это:

android:editable="false"