Android на экране клавиатуры автоматически выскакивают



одно из моих приложений имеет "экран открытия" (в основном меню), который имеет EditText последовало несколько Buttons. проблема в том, что некоторые из моих пользователей сообщают, что когда они открывают приложение, оно автоматически выскакивает на экранную клавиатуру, даже не касаясь EditText. Насколько я могу судить, все эти пользователи используют HTC Hero.



это ошибка в 1.5? Я могу что-нибудь с этим сделать?

540   10  

10 ответов:

вы можете использовать следующую строку кода в методе onCreate действия, чтобы убедиться, что клавиатура появляется только тогда, когда пользователь нажимает на EditText

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
<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 - редактор, используемый для компиляции (затмение 3.7)

поместите 'windowSoftInputMode=" stateHidden "' в XML-файл манифеста вашего приложения для каждого действия, которое вы хотите, чтобы программная клавиатура оставалась скрытой. Это означает, что клавиатура не появится автоматически, и пользователю придется "щелкнуть" по текстовому полю, чтобы вызвать его. Я искал почти час что-то, что работало, поэтому я думал, что поделюсь.

добавьте это в свой AndroidManifest.xml:

android:windowSoftInputMode="stateHidden|adjustResize"

Он отлично работает. :)

этот код будет работать на всех версиях 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);
 }

Вы можете использовать это в методе onCreate() деятельности

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

или вставьте этот код в теги активности в 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);

или set android:windowSoftInputMode="stateHidden" in <activity tag внутри AndroidManifest.xml

InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
        imm.ShowSoftInput(_enterPin.FindFocus(), 0);

*Это для Android.xamarin и FindFocus () - он ищет представление в иерархии,коренящееся в этом представлении, которое в настоящее время имеет фокус, как у меня _enterPin.RequestFocus () перед приведенным выше кодом, таким образом, он показывает клавиатуру для _enterPin EditText *

это сработало для меня:

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

Comments

    Ничего не найдено.