2015-01-08 12 views
11

È possibile aprire la tastiera su Android senza fare clic o toccare evento? Ad esempio, subito dopo aver aggiunto textarea ad un elemento? element.focus() funziona per me su iOS ma non su Android.Come aprire la tastiera su Android da javascript senza cliccare o toccare l'evento?

+2

@Vixed si dovrebbe modificare la domanda in modo da adattarlo meglio il proprio problema. In questo modo non è chiaro se si tratti di un'app nativa Android in Java (come si assume la risposta corrente) o di un'app ibrida in JavaScript, ad es. usando Cordova. – ghybs

+0

Si prega di chiarire la tua app è in java o un'app ibrida. –

+0

Webview javascript (jQuery) @ghybs – Vixed

risposta

1

Aggiungi semplicemente "requestFocus" al tuo XML. Qualcosa di simile

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

e onCreate()

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

Oppure: potrebbe essere solo

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

questo non funziona – Vixed

0

Questa risposta si basa sul seguente assunto: Sei utilizzando una WebView nella tua app Android per inserire un Javascript personalizzato per ottenere un certo nel compito

In primo luogo creare un metodo nella classe Java Android che farà il lavoro di popping up della tastiera:

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

In Javascript effettuare una chiamata al metodo takeUserInput() ogni volta che si desidera pop -up la tastiera.

È possibile leggere fino a call android functions from Javascript.

Spero che questo aiuti!

0

È necessario assicurarsi che la modalità di input software della finestra sia impostata su "sempre visibile" prima di richiedere la messa a fuoco sull'elemento. È possibile impostare utilizzando:

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

Dopo di che è possibile far apparire la tastiera richiedendo focus sul vostro elemento:

element.requestFocus(); 
Problemi correlati