2011-09-06 10 views
7

¿Cómo puedo añadir el Propety "setInputType" a un EditTextPreference (mi objetivo es establecer el tipo de entrada únicamente a los números), he intentado:setInputType en EditTextPreference

editTextPref.setInputType(InputType.TYPE_CLASS_NUMBER); 

pero esto sólo parece funcionar para EditTexts, no EditTextPreferences

Respuesta

7

puede recuperar el EditarTexto de la preferencia y desde allí setInputTypes o KeyListeners uso para informar al teclado:

EditText et = (EditText) editTextPref.getEditText(); 
et.setKeyListener(DigitsKeyListener.getInstance()); 
0

Try Este

  1. llamada getEditText() de su editTextPref
  2. continuación, establezca el tipo de entrada a eso.
4

Si todo lo que realmente necesita es un solo inputType para su editTextPreference podría configurar en el XML con android: inputType = "número" o Android: inputType = "numberDecimal".

Ejemplo:

<EditTextPreference 
     android:defaultValue="130" 
     android:dialogMessage="@string/upper_limit_hint" 
     android:dialogTitle="@string/upper_limit_text" 
     android:inputType="number" 
     android:key="UPPER_LIMIT" 
     android:maxLength="4" 
     android:summary="@string/upper_limit_hint" 
     android:title="@string/upper_limit_text" /> 

También, dar gracias a la sugerencia de Dave arriba, yo era capaz de lograr esto mediante programación mediante la asignación de la EditTextPreference a un TextView (he podido utilizar un EditarTexto).

Ejemplo:

EditTextPreference editTextPreference = (EditTextPreference) preference; 
     TextView etpTextView = (TextView) editTextPreference.getEditText(); 
     // If I want entry with decimal capability 
     etpTextView.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL); 
     // or if I want entry without decimal capability 
     etpTextView.setInputType(InputType.TYPE_CLASS_NUMBER); 
Cuestiones relacionadas