Как скрыть Soft Keyboard при запуске активности

У меня есть Edittext с android:windowSoftInputMode="stateVisible" в манифесте. Теперь клавиатура будет показана, когда я начну свою деятельность. Как скрыть это? Я не могу использовать android:windowSoftInputMode="stateHidden, потому что, когда клавиатура видна, свернуть приложение и возобновить его, клавиатура должна быть видимой. Я пробовал с помощью

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

но это не сработало.

+140
24 сент. '13 в 9:03
источник поделиться
21 ответ

Для отображения/скрытия клавиатуры используйте следующие функции:

/**
 * Hides the soft keyboard
 */
public void hideSoftKeyboard() {
    if(getCurrentFocus()!=null) {
        InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
    }
}

/**
 * Shows the soft keyboard
 */
public void showSoftKeyboard(View view) {
    InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    view.requestFocus();
    inputMethodManager.showSoftInput(view, 0);
}
+198
24 сент. '13 в 9:06
источник

Связанные вопросы


Похожие вопросы

В AndroidManifest.xml:

<activity android:name="com.your.package.ActivityName"
          android:windowSoftInputMode="stateHidden"  />

или попробуйте

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)‌​;

Пожалуйста, проверьте это также

+340
24 сент. '13 в 9:19
источник

Просто добавьте два атрибута в родительский вид editText.

android:focusable="true"
android:focusableInTouchMode="true"
+36
19 апр. '16 в 6:48
источник

Поместите это в манифест внутри тега Activity

  android:windowSoftInputMode="stateHidden"  
+35
25 июн. '17 в 5:31
источник

Попробуйте следующее:

<activity
    ...
    android:windowSoftInputMode="stateHidden|adjustResize"
    ...
>

Посмотрите этот для более подробной информации.

+25
24 сент. '13 в 10:17
источник

Чтобы скрыть экранную клавиатуру во время запуска новой активности или onCreate(), onStart() и т.д., вы можете использовать следующий код:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
+14
11 сент. '14 в 11:47
источник

Использование AndroidManifest.xml

<activity android:name=".YourActivityName"
      android:windowSoftInputMode="stateHidden"  
 />

Использование Java

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

используя вышеприведенную клавиатуру скрыть, но edittext от фокуса, когда активируется, но хватайте ее, когда вы касаетесь их, используя:

добавить в свой EditText

<EditText
android:focusable="false" />

также добавить слушателя вашего EditText

youredittext.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
    v.setFocusable(true);
    v.setFocusableInTouchMode(true);
    return false;
}});
+7
27 сент. '18 в 5:56
источник

Добавьте следующий текст в ваш XML файл.

<!--Dummy layout that gain focus -->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:orientation="vertical" >
            </LinearLayout>
+7
22 сент. '14 в 11:37
источник

Я надеюсь, что это сработает, я пробовал много методов, но этот работал у меня в fragments. просто поместите эту строку в onCreateview/init.

getActivity().getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
+6
13 мар. '17 в 12:45
источник

Чтобы скрыть экранную клавиатуру во время запуска New Activity или onCreate(), onStart() и т.д., Используйте следующий код:

getActivity().getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_HIDDEN);

Чтобы скрыть экранную клавиатуру во время нажатия кнопки, щелкните в действии:

View view = this.getCurrentFocus();

    if (view != null) {
        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        assert imm != null;
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
+5
17 мая '18 в 7:16
источник

Вы можете установить конфигурацию на AndroidManifest.xml

Пример:

<activity
    android:name="Activity"
    android:configChanges="orientation|keyboardHidden"
    android:theme="@*android:style/Theme.NoTitleBar"
    android:launchMode="singleTop"
    android:windowSoftInputMode="stateHidden"/>
+4
22 июн. '17 в 4:47
источник

Используйте следующий код, чтобы скрыть панель программных клавиш при первом запуске Activity

getActivity().getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_HIDDEN);
+4
28 окт. '17 в 10:45
источник

Поместите этот код в свой Java файл и передайте аргумент для объекта в edittext,

private void setHideSoftKeyboard(EditText editText){
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
+4
16 янв. '15 в 14:09
источник

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

Ed_Cat_Search = (EditText) findViewById(R.id.editText_Searc_Categories);

Ed_Cat_Search.setInputType(InputType.TYPE_NULL);

Ed_Cat_Search.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        Ed_Cat_Search.setInputType(InputType.TYPE_CLASS_TEXT);
        Ed_Cat_Search.onTouchEvent(event); // call native handler
        return true; // consume touch even
    }
});
+3
19 мая '14 в 12:37
источник
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

он будет работать

+2
26 апр. '18 в 5:20
источник

Это то, что я сделал:

yourEditText.setCursorVisible(false); //This code is used when you do not want the cursor to be visible at startup
        yourEditText.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                v.onTouchEvent(event);   // handle the event first
                InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                if (imm != null) {

                    imm.hideSoftInputFromWindow(v.getWindowToken(), 0);  // hide the soft keyboard
                    yourEditText.setCursorVisible(true); //This is to display cursor when upon onTouch of Edittext
                }
                return true;
            }
        });
+2
10 июл. '15 в 3:59
источник

Если ваше приложение предназначено для Android API уровня 21 или более, чем есть метод по умолчанию.

editTextObj.setShowSoftInputOnFocus(false);

Убедитесь, что вы установили код ниже в теге EditText XML.

<EditText  
    ....
    android:enabled="true"
    android:focusable="true" />
+2
28 мар. '18 в 12:45
источник

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

Сначала в вашем поисковом xml поля (имя и подсказка и т.д.) поместите @string, а не литералы.

Затем метод onCreateOptionsMenu должен иметь объект ComponentName с вашим именем пакета и вашим завершенным именем класса (с именем пакета). - В случае, когда активность с компонентом SearchView совпадает с показами результатов поиска используйте getComponentName(), как говорит разработчик Google Android.

Я пробовал много решений, и после многого, много работы это решение работает для меня.

+2
18 мар. '16 в 2:53
источник

Используйте SOFT_INPUT_STATE_ALWAYS_HIDDEN вместо SOFT_INPUT_STATE_HIDDEN

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
+1
24 мая '19 в 10:18
источник
Ed_Cat_Search = (EditText) findViewById(R.id.editText_Searc_Categories);

Ed_Cat_Search.setInputType(InputType.TYPE_NULL);

Ed_Cat_Search.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        Ed_Cat_Search.setInputType(InputType.TYPE_CLASS_TEXT);
        Ed_Cat_Search.onTouchEvent(event); // call native handler
        return true; // consume touch even
    }
});

this one worked for me
0
07 апр. '18 в 15:01
источник

добавить в свою деятельность в манифестах это свойство

android:windowSoftInputMode="stateHidden" 
0
22 июн. '19 в 20:50
источник

Посмотрите другие вопросы по меткам или Задайте вопрос