2015-11-04 4 views
0

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

Но EditText не слушает наблюдателя.

Так может кто-нибудь, пожалуйста, помогите, чтобы позволить EditText слушать TextWatcher пока он отключен, и текст заполняется в EditText не через программно KeyBoard.

Я попытался код ниже

txtShift.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 


     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      if (s.length()>0) { 
       keyPadOnOff(false); 
      }else { 
       keyPadOnOff(true); 

      }  
     } 
    }); 

благодаря

+3

Если текст заполняется в EditText программно, то почему вам нужно TextWatcher? Вы не можете инициировать событие во время установки текста в EditText? –

+0

Что вы пробовали для этого? – Amy

+0

@DhavalPatel, да, у меня есть эта опция только для запуска действия во время заполнения текста, если это невозможно через наблюдателя –

ответ

0

Проверьте следующее

  1. Вы импортировать эту строку - импорт android.text.TextWatcher;
  2. Правильно ли вы инициализируете EditText?
  3. Установите метод Log.v on - afterTextChanged (Редактируется) и сначала проверьте его.

    общественного недействительный afterTextChanged (редактируемый ы) {

    Log.v (TAG, "AfterTextChanged работали");

    }

  4. Если третья точка правильно получить значение журнала. Ошибка в методе keyPadOnOff (Boolean)

5.Check метод keyPadOnOff (булево).

0

после так много копать в Google я нашел, мы не можем сделать EditText слушать сторожа, если он сделал

et.setFocusable(false); 
et.setClickable(false); 

Так что я сделал, я вызвать событие, когда я заселение текст в EditText из моего кода ,

0

вы можете включить TextWatcher с этой линии:

txtShift.removeTextChangedListener(textWatcher); 

вы можете начать с:

txtShift.addTextChangedListener(textWatcher); 

TextWatcher textWatcher = new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 

      if (s.length()>0) { 
       keyPadOnOff(false); 
      }else { 
       keyPadOnOff(true); 
      } 

     } 
    }; 
Смежные вопросы