全部 - 抱歉我的头衔很长,我找不到任何其他说法。所以,我有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”是第一个角色,那么其余部分并不重要。这是我的主要问题。
我知道这有很多问题,但是你能给予帮助我解决这两个问题的任何帮助都将不胜感激。感谢。
答案 0 :(得分:4)
您可以使用if (s.toString().length() == 1)
来检测该框是否只有1个字符,然后在该按钮为真时禁用该按钮(如果该文件是真的则启用它)。