Android 在textwatcher中未检测到退格键
在Android 在textwatcher中未检测到退格键,android,android-edittext,textwatcher,android-keypad,Android,Android Edittext,Textwatcher,Android Keypad,在EditText中,我要在其中添加字母计数器。它正确计数,但当我输入backspace时,它也被认为是一个字母,计数加1,实际上应该减1。我的代码是 text_feedback_text.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { int
EditText
中,我要在其中添加字母计数器。它正确计数,但当我输入backspace时,它也被认为是一个字母,计数加1,实际上应该减1。我的代码是
text_feedback_text.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s)
{
int keyCode = 0;
if(keyCode==KeyEvent.KEYCODE_DEL){
i--;
Log.d("back","backspace pressed"+i);
}else
i++;
text_feedback_count.setText(String.valueOf(i) + " / " + String.valueOf(charCounts));
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count)
{
text_feedback_count.setText(String.valueOf(s.length()));
}
}
);
请帮助我,当我点击退格它没有检测到,也没有在logcat上打印
如果有人有线索,请回复
谢谢大家! 在编辑文本时使用OnKeyListener,以便检测任何按键
editText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_DEL){
//Control comes here when backspace is clicked
}
return false
}
});
1.TextWatcher用于查看文本。2.似乎您不理解自己的代码:您将0分配给keyCode
int keyCode=0
然后将其与KeyEvent.keycodel\u DEL
进行比较。。。我很确定KeyEvent.keycodel\u DEL!=0
。。。所以i--
从不被调用…@Abhishek Karande如果我们进入空间,那么TextWatcher listener也不工作…这里有任何帮助吗?这不适用于所有手机或所有输入类型:(根据我在这里看到的,上面的评论是有意义的。这应该适用于硬件键盘。问题中不清楚键盘类型,因此我认为这个答案不值得否决。尽管指出这个限制是很好的。如果(如果)(在>计数之前),这意味着在更改之前文本比curren长,这意味着我们删除了一个字母(或更多)。