2015-01-08 13 views
11

Czy można otworzyć klawiaturę na Androidzie bez kliknięcia lub dotyku? Na przykład tuż po dodaniu textarea do jakiegoś elementu? element.focus() działa dla mnie na iOS, ale nie na Androida.Jak otworzyć klawiaturę na Androidzie przez javascript bez kliknięcia lub dotyku?

+2

@Vixed należy edytować pytanie, aby lepiej dopasować swój własny problem. Nie jest jasne, czy jest to aplikacja natywna dla systemu Android w języku Java (zgodnie z obecną odpowiedzią), czy też aplikacja hybrydowa w języku JavaScript, np. używając Cordova. – ghybs

+0

Proszę wyjaśnić, czy twoja aplikacja jest w języku Java lub aplikacji hybrydowej. –

+0

Webview javascript (jQuery) @ghybs – Vixed

Odpowiedz

1

Po prostu dodaj "requestFocus" do swojego XML. Coś jak

 <EditText 
     android:id="@+id/editText" 
     ... /> 
     <requestFocus /> 

aw onCreate()

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

Lub: To może być tylko

editText.requestFocus(); 
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
+0

to nie działa – Vixed

0

Ta odpowiedź opiera się na następującym założeniu: Jesteś za pomocą WebView w aplikacji na Androida, aby wstawić niestandardowy skrypt JavaScript, aby uzyskać certa w zadaniu

Po pierwsze stworzyć metodę w Android klasy Java, który zrobi wykonać zadanie pojawiały się klawiatury:

@JavascriptInterface 
public void takeUserInput() { 
    mWebView.setFocusable(true); 
    mWebView.setFocusableInTouchMode(true); 
} 

w waszym Javascript nawiązać połączenie metody takeUserInput() gdy chcesz pop na klawiaturze.

Możesz przeczytać o tym, jak call android functions from Javascript.

Mam nadzieję, że to pomoże!

0

Musisz upewnić się, że tryb miękkiego wejścia okna jest ustawiony na "zawsze widoczny", zanim zażądasz fokusu na swoim elemencie. Można ustawić go za pomocą:

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

po tym można wywołać klawiaturę żądając skupić się na elemencie:

element.requestFocus(); 
Powiązane problemy