在软键盘中禁用DONE,直到在编辑文本中键入最少数量的字符

时间:2013-03-22 23:14:32

标签: android android-edittext textview android-softkeyboard android-keypad

我需要在Android系统软件板上禁用 DONE 按钮(imeOptions - > IME_ACTION_DONE),直到在编辑文本中输入最小字符数。有什么建议吗?

注意:最小字符数只是需要在edittext用户输入上执行的一个此类验证。因此,在用户输入文本通过所有验证之前,需要保持DONE禁止用户导航到下一步。

由于

2 个答案:

答案 0 :(得分:2)

这是我能得到的最接近的。我无法禁用该按钮,但会静静地消耗由 DONE 按钮触发的事件,并且什么都不做。

        if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)){

        if(isValid(mTextView.getText()){
            //Permit further operation 
        }else{
            //Do nothing - This will consume the KEYCODE_ENTER action
        }
        return false;  //To let other listeners that this event has already been consumed
    }

答案 1 :(得分:0)

我的建议是不要走这条路。最终,你无法控制软键盘的作用。即使你在股票键盘上找到了这样做的方法,它也可能不适用于三星键盘或Swype键盘。某些第三方键盘甚至忽略了inputType之类的基本控件,乐于向用户显示输入数字字段的字母。您应该将所有与键盘相关的api视为建议,而不是指望它们中的任何一个被强制执行。