В одном из моих приложений есть «начальный экран» (в основном меню), за EditText
которым следует несколько Button
букв s. Проблема в том, что некоторые из моих пользователей сообщают, что, когда они открывают приложение, оно автоматически открывает экранную клавиатуру, даже не касаясь EditText
. Насколько я могу судить, все эти пользователи используют HTC Hero .
Это баг в 1.5? Что я могу с этим поделать?
android
android-softkeyboard
Джереми Логан
источник
источник
Ответы:
Вы можете использовать следующую строку кода в методе onCreate действия, чтобы убедиться, что клавиатура появляется только тогда, когда пользователь нажимает на EditText
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
источник
android:windowSoftInputMode="stateHidden"
как здесь<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name" android:windowSoftInputMode="stateHidden" >
Это работает для Android 3.0, 3.1, 3.2, 4.0 - редактор, используемый для компиляции (Eclipse 3.7)
Поместите 'windowSoftInputMode = "stateHidden"' в XML-файл манифеста вашего приложения для КАЖДОГО действия, в котором вы хотите, чтобы программная клавиатура оставалась скрытой. Это означает, что клавиатура не появится автоматически, и пользователь должен будет «щелкнуть» по текстовое поле, чтобы открыть его. Я почти час искал что-то, что работало, поэтому подумал, что поделюсь.
источник
Добавьте это в свой AndroidManifest.xml :
android:windowSoftInputMode="stateHidden|adjustResize"
Работает отлично. :)
источник
requestFocus()
.Этот код будет работать на всех версиях Android:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //Automatic popping up keyboard on start Activity getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); or //avoid automatically appear android keyboard when activity start getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); }
источник
Добавьте это в родительский макет XML.
android:focusable="true" android:focusableInTouchMode="true"
Это гарантирует, что при запуске Activity фокус не на editText.
источник
Вы можете использовать это в методе onCreate () действия
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
или вставьте этот код в теги Activity в AndroidManifest.xml
android:windowSoftInputMode="stateVisible"
источник
В этой версии Android, когда представление расширено, по умолчанию фокус будет установлен на первый фокусируемый элемент управления, а если нет физической клавиатуры, появится экранная клавиатура.
Чтобы исправить это, явно установите фокус в другом месте. Если фокус установлен на что-либо иное, кроме EditText, экранная клавиатура не появится.
Вы пробовали это проверить, запустив Android 1.5 в эмуляторе?
источник
Вы можете добавить одну строку кода в Android Mainfest.xml в теге активности
<activity android:name="com.sams.MainActivity" android:windowSoftInputMode="stateVisible" > </activity>
это может вам помочь.
источник
Вы можете сделать это программно, например
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
или установить
android:windowSoftInputMode="stateHidden"
в<activity tag
внутриAndroidManifest.xml
источник
Включите это, где импорт находится сверху:
import android.view.WindowManager;
Добавьте этот код в часть OnCreate:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); .... getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); }
источник
InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService); imm.ShowSoftInput(_enterPin.FindFocus(), 0);
* Это для Android.xamarin и FindFocus () - он ищет представление в иерархии, основанной на этом представлении, которое в настоящее время имеет фокус, так как у меня есть _enterPin.RequestFocus () перед приведенным выше кодом, поэтому он показывает клавиатуру для _enterPin EditText *
источник