Android EditText软键盘问题

Posted

技术标签:

【中文标题】Android EditText软键盘问题【英文标题】:Android EditText soft keyboard question 【发布时间】:2011-10-17 06:45:57 【问题描述】:

我有 EditText 什么应该让用户输入飞机座位号(如 17G、5A 等) 问题是我将 EditText 输入类型设置为文本,它总是用文本打开软键盘。 但是我的输入总是以数字开头,因此用户必须始终将键盘切换到数字并返回。 问题是如何设置键盘以在数字所在的部分打开文本键盘? 我尝试输入 android:inputType="numeric" 但它只是打开数字键盘,之后无法输入任何文本。

【问题讨论】:

试试这个***.com/questions/4469936/… 可悲的是没有什么用处。 【参考方案1】:

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

否则,您可以像这样以编程方式更改 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://***.com/a/40526750/6672482

【讨论】:

以上是关于Android EditText软键盘问题的主要内容,如果未能解决你的问题,请参考以下文章

软键盘隐藏了一半的 EditText

Android怎么关闭EditText中的软键盘

Kotlin EditText 软键盘的搜索按钮

Android上点击EditText将不会显示软键盘

android开发:软键盘显示的时候把布局往上顶

android安卓editText自动弹出软键盘(输入键盘)