2012-11-26 17 views
28

Próbuję ustawić przycisk "Gotowe" na softkeyboard przy użyciu input.setImeOptions (EditorInfo.IME_ACTION_DONE);setImeOptions: dlaczego przycisk "Gotowe" nie jest wyświetlany na miękkiej klawiaturze?

ale przycisk "Gotowe" po prostu nie wyświetla się na klawiaturze programowej.

Wszelkie sugestie proszę?

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();     
} 

Odpowiedz

52

Jest tak prawdopodobnie dlatego, że twoje pole wejściowe nie jest jedno-liniowe.

spróbuj dodać

input.setSingleLine(); 

I widać, że naciśnięcie klawisza funkcyjnego na klawiaturze będą faktycznie wykonywać „Gotowe” działania (tj zamknąć klawiaturę)

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

+1

Co jeśli chcesz mieć pole tekstowe z wieloma liniami, ale bez wyraźnych znaków nowej linii? –

+0

Użyj Androida: imeOptions = "actionUnspecified" w Układzie XML .. – AnkitRox