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长,这意味着我们删除了一个字母(或更多)。