2015-08-26 25 views
6

Grazie in anticipo per l'aiuto.Android: forza la tastiera per apparire e concentrarsi su EditText

Vorrei una tastiera che compaia alla fine o durante l'esecuzione del codice seguente.

// edit text 
    EditText editText = new EditText(activity); 
    editText.setBackgroundColor(Color.WHITE); 
    editText.setGravity(Gravity.TOP); 
    editText.setText("Type here..."); 

    RelativeLayout relativeLayoutEditText = new RelativeLayout(activity); 
    RelativeLayout.LayoutParams paramRelativeLayoutEditText = new RelativeLayout.LayoutParams(
      LinearLayout.LayoutParams.MATCH_PARENT, 43 * display.getHeight()/80); 
    paramRelativeLayoutEditText.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    relativeLayoutEditText.addView(editText,paramRelativeLayoutEditText); 

    // add all created views to rootView 
    rootView.addView(relativeLayoutEditText, paramEditText); 

    // open keyboard 
    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); 

ma la tastiera appare solo dopo aver toccato il campo EditText (cioè con il dito). C'è un modo in cui posso far apparire automaticamente la tavola senza usare un tocco fisico?

Per inciso, so che come sto specificando la larghezza e l'altezza non è esattamente il modo giusto di fare le cose.

+0

editText.requestFocus(); puoi aggiungere questo codice dopo setTextMethod()? – mustafasevgi

+0

L'ho già provato. editText ottiene lo stato attivo ma la tastiera non viene visualizzata fino a quando non tocco lo schermo. – HXSP1947

+0

Risposta possibile: http://stackoverflow.com/a/8991563/3913366 –

risposta

7

Grazie a @ collegamento di Shubham sono stato in grado di capirlo. La soluzione non era la risposta fornita nel collegamento, tuttavia. Era la seconda risposta.

editText.requestFocus(); 
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 

Edit:

una volta utilizzando la soluzione sopra la tastiera rimane sullo schermo fino a quando un utente preme il pulsante posteriore o il tasto home (a volte ci vogliono un paio di volte). Per rimuovere la tastiera utilizzare questo

imm.toggleSoftInputFromWindow(rootView.getWindowToken(), 0,0); 

nel mio caso rootView è il rootView dell'attività corrente. Non ho provato questo per vedere se questo funzionerà su visualizzazioni figlio.

3

Aggiungi

editText.requestFocus(); 

Prova questa:

EditText editText = (EditText) findViewById(R.id.myTextViewId); 
editText.requestFocus(); 
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); 

assicurarsi che l'EditText è attivabile in modalità touch. Puoi farlo in due direzioni.

in XML:

android:focusableInTouchMode="true" 

in Java:

editText.setFocusableInTouchMode(true); 
+0

Vedere il mio commento sopra. – HXSP1947

+0

vedere la mia risposta di aggiornamento – sasikumar

+1

stessa cosa. editText ottiene lo stato attivo ma la tastiera non appare finché non tocco lo schermo. – HXSP1947

0

Possibile answer link. Molti di questi sono anche estratti da questo link.

Try This:

EditText textView = (EditText)findViewById(R.id.myTextViewId); 
textView.requestFocus();  
InputMethodManager imm = 
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(textView, InputMethodManager.SHOW_IMPLICIT); 
+0

dare la soluzione reale. – HXSP1947

+0

Questa non è la soluzione ....... La seconda risposta è stata. Vedi il mio commento in precedenza. – HXSP1947

-2

questo mostrerà la tastiera

InputMethodManager imm = (InputMethodManager) 
     OrderMainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(txtCustomerId, InputMethodManager.SHOW_IMPLICIT); 

immettere il nome dell'attività, invece di questo se si chiama tastiera dagli ascoltatori ad es. clic del pulsante

Problemi correlati