2012-11-26 10 views
28

Provo a impostare il pulsante "Fatto" sulla tastiera utilizzando input.setImeOptions (EditorInfo.IME_ACTION_DONE);setImeOptions: perché il pulsante "Fine" non viene visualizzato sulla tastiera virtuale?

ma il pulsante "Fatto" semplicemente non viene visualizzato sulla tastiera.

Qualche suggerimento, per favore?

public void modif(int position) { 
    AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); 
    alert.setTitle("Modifica"); 
    EditText input = new EditText(MainActivity.this); 
    input.setImeOptions(EditorInfo.IME_ACTION_DONE); 
    alert.setView(input); 
    final Editable value = input.getText(); 
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      Toast.makeText(getApplicationContext(), value, Toast.LENGTH_LONG).show(); 
     } 
    }); 

    alert.setNegativeButton("Cancel", new  DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
     // Canceled. 
     } 
    }); 
    alert.show();     
} 

risposta

52

Probabilmente è perché il campo di immissione non è a linee singole.

Prova ad aggiungere

input.setSingleLine(); 

E vedrete che premendo il tasto azione della tastiera sarà effettivamente eseguire un'azione 'done' (vale a dire chiudere la tastiera)

Vedi http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html#IME_ACTION_DONE

+1

E se vuoi una casella di testo a più righe con wrap ma nessun carattere di nuova riga esplicito? –

+0

Usa android: imeOptions = "actionUnspecified" in Layout XML .. – AnkitRox

Problemi correlati