抱歉,我的头衔太长了,我找不到其他表达方式。因此,我有一个EditText,并且仅剩一个字符时(可以通过TextWatcher对其进行监视),我想禁用退格键。这是我到目前为止的内容:

    editText$.addTextChangedListener(new TextWatcher() {
    private String current = "";
    String one = "1";
    String empty = one; //Right now only set to "1" but want to set to "[any character]"
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }
    public void afterTextChanged(Editable s) {

        if (s.toString().equals(empty)) {
            editText$.setOnKeyListener(new OnKeyListener() {
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                     if(keyCode == KeyEvent.KEYCODE_DEL){
                           return true; //Disable backspace key here
                         }
                return false;
                    }
            });
        }
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }
  });


除两个关键问题外,此方法有效:

1)我只能弄清楚如何检查一个特定字符(“ 1”)与要检查的任何一个字符。我已经尝试过String empty = "1" + "2" + "etc";,但是执行此操作后代码不再起作用,而且看来执行任务的效率似乎很低。

2)当EditText具有类似134的字符时,即使不是唯一字符“ 1”,也会禁用退格键。显然,如果“ 1”是第一个字符,那么其余的则无关紧要。这是我的主要问题。

我知道有很多要问的问题,但是可以提供任何帮助我解决这两个问题的帮助将不胜感激。谢谢。

最佳答案

您可以使用if (s.toString().length() == 1)来检测该框是否只有1个字符,如果该框为true,则禁用该按钮(如果为空则启用该按钮)。

09-27 05:15
查看更多