繁体   English   中英

Android EditText软键盘问题

[英]Android EditText soft keyboard question

我有EditText,应该从用户那里得到飞机座位号的输入(例如17G,5A等),然后问题是我将EditText输入类型设置为text,它总是用文本打开软键盘。 但是我的输入始终以数字开头,因此用户必须始终将键盘切换为数字并返回。 问题是如何设置键盘以在数字所在的部分打开文本键盘? 我试着把android:inputType =“ numeric”放进去,但是它只是打开数字键盘,之后无法输入任何文本。

由于座位号(您的示例)将具有不同的号码计数,因此很难猜测何时从一种键盘类型更改为另一种键盘类型。

否则,您可以像下面这样以编程方式更改EditText输入类型:

((EditText) mView.findViewById(R.id.et_seat_number)).addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {

        }

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

        @Override
        public void afterTextChanged(Editable editable) {

            EditText etSeatNumber = (EditText) mView.findViewById(R.id.et_seat_number);
            if(editable.length() > 2)
                etSeatNumber.setInputType(InputType.TYPE_CLASS_NUMBER);
            else{
                etSeatNumber.setInputType(InputType.TYPE_CLASS_TEXT);
            }
        }
    });

您也可以使用软键盘的IME选项更改键盘输入类型。 https://stackoverflow.com/a/40526750/6672482

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM