android-edittext propiedades - cómo establecer solo el valor numérico para edittext en android?




validar studio (9)

Para entradas de solo dígitos, use android:inputType="numberPassword" junto con editText.setTransformationMethod(null); para eliminar la ocultación automática del número.

O

android:inputType="phone"

Solo para la entrada de dígitos, creo que estas formas de pareja son mejores que android:inputType="number" . La limitación de mencionar "número" como inputType es que el teclado permite cambiar a los caracteres y también permite ingresar otros caracteres especiales. "numberPassword" inputType no tiene esos problemas ya que el teclado solo muestra dígitos. Incluso el tipo de entrada "phone" funciona ya que el teclado no le permite cambiar a los caracteres. Pero aún puede ingresar dos caracteres especiales como +, /, N, etc.

android: inputType = "numberPassword" con editText.setTransformationMethod (null);

inputType = "teléfono"

inputType = "número"

Tengo un edittext de edittext en el que quiero que solo se inserten valores enteros. ¿Alguien puede decirme qué propiedad debo usar?


Si alguien quiere usar solo un número del 0 al 9 con imeOptions habilitado, entonces use la línea debajo de su EditText

android: inputType = "número | ninguno"

Esto solo permitirá el número y si hace clic en el botón de hacer / siguiente del teclado, su enfoque se moverá al siguiente campo.


Supongo que android:inputType="number" en los atributos xml.


Puedes usarlo en XML

<EditText
 android:id="@+id/myNumber"
 android:digits="123"
 android:inputType="number"
/>

o,

android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.

o,

android:inputType="phone"

Programáticamente puedes usar
editText.setInputType (InputType.TYPE_CLASS_NUMBER);


En código, podrías hacer

ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);

el más simple para mí

android:numeric="integer" 

aunque esto también más personalizar

android:digits="0123456789"

Por ejemplo:

<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>

android:inputType="numberDecimal"

Esto me funcionó para todo el extraño comportamiento del teclado.

private boolean isKeyboardVisible() {
    Rect r = new Rect();
    //r will be populated with the coordinates of your view that area still visible.
    mRootView.getWindowVisibleDisplayFrame(r);

    int heightDiff = mRootView.getRootView().getHeight() - (r.bottom - r.top);
    return heightDiff > 100; // if more than 100 pixels, its probably a keyboard...
}

protected void showKeyboard() {
    if (isKeyboardVisible())
        return;
    InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    if (getCurrentFocus() == null) {
        inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    } else {
        View view = getCurrentFocus();
        inputMethodManager.showSoftInput(view, InputMethodManager.SHOW_FORCED);
    }
}

protected void hideKeyboard() {
    if (!isKeyboardVisible())
        return;
    InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    View view = getCurrentFocus();
    if (view == null) {
        if (inputMethodManager.isAcceptingText())
            inputMethodManager.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
    } else {
        if (view instanceof EditText)
            ((EditText) view).setText(((EditText) view).getText().toString()); // reset edit text bug on some keyboards bug
        inputMethodManager.hideSoftInputFromInputMethod(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}




android android-edittext