keyboard свойства - Как показать клавиатуру номера в EditText в android?





получить текст (11)


Вы можете сделать это двумя способами

  1. Набор времени выполнения

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    
  2. Использование XML

    <EditText
        ...
        android:inputType="number" />
    

Я просто хочу переключиться на режим номерной подушки, как только у некоторых EditText есть фокус.




Если вам требуется дробное число, то это ответ для вас:

android:inputType="numberDecimal"



editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);



Дополнительные типы ввода и сведения, найденные here на веб-сайте google




Используйте приведенный ниже код в java-файле

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);




Я нашел эту реализацию полезной, показывает лучшую клавиатуру и ограничивает ввод символов.

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>

Кроме того, вы можете использовать android:maxLength для ограничения максимального количества чисел.

Чтобы сделать это программно:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);



Определите это в коде xml

android:inputType="number"



Чтобы сделать это в файле Java:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);



Если вы используете свой EditText в диалоге или динамически создаете, и вы не можете установить его из xml, этот пример поможет вам установить этот тип клавиатуры, когда вы используете динамическое Редактирование текста и т. Д.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

где myEditTxt - это динамический объект EDIT TEXT (имя)




Вы можете настроить inputType для своего EditText :

<EditText android:inputType="number" ... />



Вы также можете создать собственное расширение EditText, которое знает, чтобы открыть мягкую клавиатуру, когда она получает фокус. Вот что я сделал. Вот что сработало для меня:

public class WellBehavedEditText extends EditText {
    private InputMethodManager inputMethodManager;
    private boolean showKeyboard = false;

    public WellBehavedEditText(Context context) {
        super(context);
        this.initializeWellBehavedEditText(context);
    }

    public WellBehavedEditText(Context context, AttributeSet attributes) {
        super(context, attributes);
        this.initializeWellBehavedEditText(context);
    }

    public WellBehavedEditText(Context context, AttributeSet attributes, int defStyleAttr) {
        super(context, attributes, defStyleAttr);
        this.initializeWellBehavedEditText(context);
    }

    public WellBehavedEditText(Context context, AttributeSet attributes, int defStyleAttr, int defStyleRes) {
        super(context, attributes, defStyleAttr, defStyleRes);
        this.initializeWellBehavedEditText(context);
    }

    private void initializeWellBehavedEditText(Context context) {
        this.inputMethodManager = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);

        final WellBehavedEditText editText = this;
        this.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                if(showKeyboard) {
                    showKeyboard = !(inputMethodManager.showSoftInput(editText, InputMethodManager.SHOW_FORCED));
                }
            }
        });
    }

    @Override
    protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
        if(!focused) this.showKeyboard = false;
        super.onFocusChanged(focused, direction, previouslyFocusedRect);
    }

    @Override
    public boolean requestFocus(int direction, Rect previouslyFocusedRect) {
        boolean result = super.requestFocus(direction, previouslyFocusedRect);
        this.showKeyboard = true;
        final WellBehavedEditText self = this;
        this.post(new Runnable() {
            @Override
            public void run() {
                showKeyboard = !(inputMethodManager.showSoftInput(self, InputMethodManager.SHOW_FORCED));
            }
        });
        return result;
    }
}




android keyboard android-edittext