Android Java - EditText, appendText для inputType Number - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть EditText , который должен выглядеть примерно так 2018-11-11-1 Так что я хочу добавить «-» автоматически, так что пользователь должен вводить только цифры.

Но при использовании номера типа ввода (из-за клавиатуры) он не добавляется, а работает только с текстом типа ввода.

            <EditText
            android:id="@+id/idEdit"
            android:layout_width="match_parent"
            android:maxWidth="500dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginHorizontal="20dp"
            android:layout_below="@+id/imageScroller"
            android:hint="Scheinnummer eingeben"
            android:inputType="number"
            android:imeOptions="actionDone"
            android:layout_centerInParent="true"/>

Способ добавления дефиса после 4 символов.

        int len=0;
    @Override
    public void afterTextChanged(Editable s) {
        String str = _idEdit.getText().toString();
        if(str.length()==4&& len <str.length()){//len check for backspace
            _idEdit.append("-");
        }
    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

        String str = _idEdit.getText().toString();
        len = str.length();
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Вы должны установить тип ввода на number (не обязательно, но он покажет наиболее подходящую клавиатуру для вашей цели), а также разрешенные цифры для включения - char.

<!-- this line will show the knumeric keyboard -->
android:inputType="number"
<!-- this line will allow all and only the shown digits to be written -->
android:digits="0123456789-"

Примечание: синтаксический анализ полученного текста непосредственно не будет выполнен, вы должны сохранить его как String или, во-первых, вы должны удалить символы минус.

0 голосов
/ 21 ноября 2018

Можете ли вы попробовать это?Я не уверен, но я использую его раньше для шоу 12.34.56.78 текст

 android:digits="0123456789."
 android:inputType="number"

Ваш код должен быть как в файле ресурсов XML

 android:digits="0123456789-"
 android:inputType="number"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...