1

В моем приложении, когда я перехожу из одной активности в другую, автоматически открывается всплывающая подсказка.клавиатура автоматически появляется при переходе от одной активности к другой

У меня есть один вид деятельности (например, А), на котором я поставил

android:configChanges="keyboardHidden" 

, потому что я не хочу клавиатуры на эту деятельность, но когда я перехожу от этой деятельности на другой вид деятельности (скажем, B), который содержит Map и AutoComompleteTextView, клавиатура сначала автоматически всплывает, а затем закрывается.

, что я примерил активности Б: В манифесте я поставил

android:windowSoftInputMode="stateHidden|adjustResize" 

в OnCreate

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

я также попытался положить это в OnCreate

try{ 
     View view = this.getCurrentFocus(); 
     if (view != null) { 
      InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
     } 
    }catch (Exception e) 
    { 
     Log.e(TAG, "onCreate: keyboard crash"); 
     e.printStackTrace(); 
    } 

я также попытался установить фокус на другое представление в активности, например (View v1)

v1.requestFoucs(); 

я даже пытался положить

android:focusableInTouchMode="true" 

на каждый компонент в деятельности В.

, но ничего не работает для меня.

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

OnScreen keyboard opens automatically when Activity starts

Automatic popping up keyboard on start Activity

How to avoid automatically appear android keyboard when activity start

это мой AutoComompleteTextView

<AutoCompleteTextView 
      android:id="@+id/auto_serviceArea" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:layout_marginStart="10dp" 
      android:layout_weight=".5" 
      android:background="@android:color/transparent" 
      android:cursorVisible="false" 
      android:hint="@string/serviceArea" 
      android:padding="5dp" 
      android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:singleLine="true"/> 

Редактирование 1: Я попытался проверить, какой вид получает фокус, поэтому я могу сместить этот фокус, и во время отладки я удалил фокус из AutoCompleteTextView, но клавиатура появляется и исчезает, когда начинается действие. Так что это не проблема фокуса автозаполнения.

+2

опубликуйте XML-макет edittext. – Noorul

+0

xml добавлено @ahamed –

+0

@RajatPorwal try 'android: focusable =" false "и' android: focusableInTouchMode = "true" 'в autocompleteTextView –

ответ

0

Просто то, что вам нужно сделать, это дать

android:windowSoftInputMode="stateHidden" 

в файле манифеста вашей деятельности.

+0

пытался работать, даже не пытался" stateAlwaysHidden ", но не работает –

+0

Удалить все остальные коды для клавиатуры и просто поместить этот код манифеста. Его работа прекрасна для меня. Я всегда использую этот метод для скрытия клавиатуры в Activity create. –

+0

Я нашел эту ссылку весьма полезной. Я надеюсь, что это тоже поможет. Https://www.youtube.com/watch?v=KxdEKTt0-1k – Zidane

0

Написать ниже линии внутри основного XML-тега

android:descendantFocusability="beforeDescendants" 
android:focusableInTouchMode="true" 

как ниже

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mainLayout" 
    android:descendantFocusability="beforeDescendants" 
    android:focusableInTouchMode="true" > 
+0

не работает! –

0

Используйте эти строки в java файле:

InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
inputManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0); 
+0

уже пробовал, пожалуйста, прочитайте полный вопрос. !! –

0

Если вы испробовали все, что приходит как принятый ans согласно вашим ссылкам для ответов, то почему бы вам не попробовать deb ugging вашей деятельности начала, я имею в виду, на котором вы намеревались начать соответствующую деятельность. При отладке одного из моих приложений я обнаружил, что эта мягкая клавиатура для Android имеет такую ​​проблему, что она не спустится даже после завершения действия, которая ее вызывает, она остается на экране в течение нескольких секунд, но этого не происходит часто.

Так что я предлагаю вам отлаживать вашу деятельность по вызову, просто попробуйте поставить «focusable = false» на компонент, из которого вы вызвали соответствующее действие.

+0

, но у меня есть андроид: configChanges = "keyboardHidden" в моей активности вызова, что означает, что я изменил доступность клавиатуры для этой активности, поэтому клавиатура никогда не появится на этом экране. Исправьте меня, если я ошибаюсь.? –

+0

, но ОК, я попробую ваше предложение, потому что у меня нет другого выбора, я пробовал все в текущей деятельности. –

+0

Я пробовал отлаживать вызывающую деятельность, и, как вы предположили, put focusable = false на компоненте, из которого я вызывал новую активность, и это сработало .. !! Это означает, что проблема связана с вызовом, клавиатура появляется при вызове. Я не знаю, почему это происходит, потому что я уже установил android: configChanges = "keyboardHidden" и android: windowSoftInputMode = "adjustPan | stateUnchanged | stateAlwaysHidden" в menifest.xml все еще эта клавиатура появляется в этой активности. Можете ли вы объяснить, почему это происходит? –