2010-09-11 8 views
11

he copiado widget de NumberPicker de Android para mi propia aplicación, pero estoy teniendo un problema ...Android NumberPicker no ahorrar EditarTexto cambia

Cuando alguien hace clic manualmente el EditarTexto y lo cambia a través del teclado, la selección se No guardado. ¿Hay algún oyente que pueda implementar para verificar y ver si el usuario cambia manualmente EditText para establecerlo como actual? ¿O algo?

Respuesta

0

Usted puede tratar de establecer un TextWatcher a su EditarTexto a hacer lo mismo o no permitir a un usuario introducir manualmente un valor allí ...

O mantener un botón Aceptar allí y tomar los valores desde el EditText solo cuando un usuario hace clic en el botón Aceptar

¿Ha probado esta muestra?

http://www.quietlycoding.com/?p=5

+0

Sí, así es exactamente como descubrí cómo copiar sobre NumberPicker. Y lamentablemente, me gustaría que un usuario pueda ingresar su puntaje manualmente. –

+0

¿Has intentado configurar un observador de texto para tu EditText ..? Comprueba esta publicación http://stackoverflow.com/questions/3665470/measure-length-of-edittext-string-dynamically-in-android/3666012#3666012 – DeRagan

0

No está seguro de si está utilizando el mismo Numberpicker como la mía: http://www.quietlycoding.com/?p=5. Intenté agregar un OnEditorActionListener al NumberClass, parece que me solucionó el problema.

  • modifique NumberPicker.java, deje que se extienda OnEditorActionListener.
  • agregar mText.setOnEditorActionListener (this); a NumberPicker constructor
  • implemento onEditorAction:

    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
        validateInput(v); 
        return false; 
    } 
    

esperan que pueda ser útil.

1

Tengo el mismo problema al usar numberpicker http://www.quietlycoding.com/?p=5 y lo resolví agregando OnKeyListener (en cambio OnEditorActionListener, que ya había sido sugerido por Junzi) a la clase NumberPicker. Otros pasos son iguales, así:

  1. Let NumberPicker.java extender OnKeyListener
  2. añadir mText.setOnKeyListener (this); a NumberPicker constructor
  3. aplicar OnKey:


public boolean onKey(View v, int keyCode, KeyEvent event) { 
    validateInput(v); 
    return false; 
} 
2

que utiliza el número selector de Michael Novak. Aunque onEditorAction ya se implementó, no estableció correctamente la entrada. La solución más sencilla para mí fue llamar a validateInput en textView en getCurrent.

/** 
* @return the current value. 
*/ 
public int getCurrent() { 
    validateInput(mText); 
    return mCurrent; 
} 
1

Si está utilizando Android NumberPicker de Android4.0.x significa que puede obtener el valor de NumberPicker utilizando el getValue(). http://developer.android.com/reference/android/widget/NumberPicker.html#getValue()

Es una manera fácil de obtener el Numberpicker en 4.0.x androide ...

final NumberPicker np = new NumberPicker(CustomizedListView.this); np.setMinValue(0); np.setMaxValue(100); np.setWrapSelectorWheel(true); Y se puede obtener el valor usando el método np.getValue().

36

He encontrado esta solución perdido en algún lugar de android-developers grupo de Google:

Para widget Android SDK NumberPicker, simplemente use:

myNumberPicker.clearFocus(); 

antes de tratar de obtener su valor. Cuando tiene una actividad solo con el NumberPicker y tal vez un botón o una rueda giratoria, y la edita e intenta hacer clic en otra parte, su método onFocusChangedListener no se maneja correctamente. Entonces solo necesita forzarlo a perder el enfoque antes de usar getValue(). Trabajó como un encanto para mí.

+0

+1, funcionó para mí – 66CLSjY

+0

Genial ... Funcionó para mí. – AB1209

+0

hizo mi día ... gracias. – hotzen

Cuestiones relacionadas