Pojawiająca się automatyczna klawiatura na ekranie androida

Jedna z moich aplikacji ma "ekran otwarcia" (w zasadzie menu), który ma EditText, a następnie kilka Buttons. problem polega na tym, że kilku moich użytkowników zgłaszają, że po otwarciu aplikacji automatycznie pojawia się klawiatura ekranowa bez dotykania EditText. Z tego co wiem, wszyscy użytkownicy używają HTC Hero .

Czy to błąd w 1.5? Mogę coś z tym zrobić?

Author: mahe madhi, 2010-03-23

10 answers

Możesz użyć następującego wiersza kodu w metodzie OnCreate aktywności, aby upewnić się, że klawiatura pojawia się tylko wtedy, gdy użytkownik kliknie EditText

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
 263
Author: Donal Rafferty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-06 02:38:22
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name"
              android:windowSoftInputMode="stateHidden"
              >

To działa dla Androida 3.0, 3.1, 3.2, 4.0 - edytor używany do kompilacji (Eclipse 3.7)

Umieść ' windowSoftInputMode="stateHidden "' w pliku XML manifestu aplikacji dla każdej aktywności, w której chcesz, aby klawiatura programowa pozostała ukryta. Oznacza to, że klawiatura nie pojawi się automatycznie, a użytkownik będzie musiał "kliknąć" na polu tekstowym, aby je wyświetlić. Szukałem prawie godzinę czegoś, co działało, więc pomyślałem, że się podzielę.

 81
Author: mourngrym1969,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-24 22:14:36

Dodaj to w swoim AndroidManifest.xml :

android:windowSoftInputMode="stateHidden|adjustResize"
Działa idealnie. :)
 5
Author: Arun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-09 05:38:27

Ten kod będzie działał na wszystkich wersjach Androida:

@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);
 }
 5
Author: Satheeshkumar Somu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-31 13:39:33

Możesz użyć tego w metodzie OnCreate () działania

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

Lub wklej ten kod w znacznikach aktywności w AndroidManifest.xml

android:windowSoftInputMode="stateVisible"
 3
Author: sommer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-19 21:57:52

W tej wersji Androida, gdy widok jest napompowany, fokus zostanie ustawiony domyślnie na pierwszą kontrolkę z możliwością ustawiania ostrości - a jeśli nie ma fizycznej klawiatury, pojawi się klawiatura ekranowa.

Aby to naprawić, jawnie Ustaw fokus gdzie indziej. Jeśli fokus jest ustawiony na coś innego niż EditText, klawiatura ekranowa nie pojawi się.

Próbowałeś to przetestować uruchamiając Androida 1.5 w emulatorze?

 1
Author: dmazzoni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-23 01:22:00

Możesz dodać pojedynczy wiersz kodu w Android Mainfest.xml under activity tag

 <activity
        android:name="com.sams.MainActivity"
        android:windowSoftInputMode="stateVisible" >
 </activity>
To może Ci pomóc.
 1
Author: Mohanraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-11 09:59:43

Możesz to zrobić programowo jak

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

Lub ustawić android:windowSoftInputMode="stateHidden" w <activity tag wewnątrz AndroidManifest.xml

 1
Author: Xar-e-ahmer Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-19 09:02:19
InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
        imm.ShowSoftInput(_enterPin.FindFocus(), 0);

*to jest dla Androida.xamarin i FindFocus()-wyszukuje widok w hierarchii zakorzenionej w tym widoku, który obecnie ma focus, tak jak mam _enterPin.RequestFocus () przed powyższym kodem pokazuje klawiaturę dla _enterpin EditText *

 0
Author: Ruchira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-13 10:59:52

To mi pomogło:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
 0
Author: Ajay Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-20 00:47:25