2012-02-27 9 views
1

В EditText, где я хочу добавить счетчик писем. он считает правильно, но когда я вошел в забой он также рассматривается в качестве письма и сосчитать добавляют 1, который на самом деле должен быть уменьшен на 1. мой кодbackspace ключ не обнаруживается в textwatcher

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())); 
      } 
     } 
     ); 

Пожалуйста, помогите мне, когда я нажав Backspace его не обнаруживает, а также не печатать на логарифме.

Пожалуйста, ответьте, если у кого-нибудь есть ключ.

Спасибо!

+8

1. TextWatcher является для просмотра текста. 2. Похоже, вы не понимаете свой собственный код: вы оцениваете 0 на keyCode 'int keyCode = 0;', а затем сравниваете его с 'KeyEvent.KEYCODE_DEL' ... я уверен, что' KeyEvent.KEYCODE_DEL! = 0 '... так что' i -; 'никогда не вызывается ... – Selvin

+0

@Abhishek Karande также, если мы входим в пространство, тогда также прослушиватель TextWatcher не работает ... любая помощь здесь? – CoDe

+0

http://stackoverflow.com/questions/12202047/detect-backspace-in-textwatcher –

ответ

0

Используйте OnKeyListener для вас EditText так что вы можете обнаружить любое нажатие клавиши

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   
     } 
}); 
+4

это не работает на всех телефонах или всех типах ввода :( –

+0

Основываясь на том, что я вижу здесь, комментарий выше имеет смысл. Http : //stackoverflow.com/questions/4886858/android-edittext-deletebackspace-key-event#comments-4887323 – loeschg

+0

Это должно работать на аппаратных клавиатурах. Тип клавиатуры не ясен из вопроса, поэтому я считаю, что этот ответ не заслуживает – naXa