2

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

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

谢谢

4

2 回答 2

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
    }
于 2013-03-23T00:34:12.703 回答
0

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

于 2013-03-22T23:17:42.210 回答