2013-08-10 3 views
-1

У меня есть TextWatcher, настроенный и работающий (почти) точно так, как я хочу. Тем не менее, я бы хотел, чтобы этот TextWatcher останавливался, как только пользователь вводил «.». Единственное решение, которое я нашел до сих пор, приводит к сбою приложения, если пользователь полностью удаляет текст. Также важно, чтобы ENTRERE TextWatcher заканчивался в тот момент, когда пользователь вводит '.'.Android - End TextWatcher, когда пользователь вводит '.'

Я попытался разместить TextWatcher в цикле, однако он, похоже, не работает.

private TextWatcher userEnterListener = new TextWatcher() { 

    @Override 
    public void afterTextChanged(Editable s) { 
     // TODO Auto-generated method stub 


    } 


    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, 
      int after) { 



     if(after==0) { 
      shownText = "Please try again"; 
     } 
     else if(after==1) { 
      shownText = "A"; 
     } 
     else if(after==2) { 
      shownText = "An"; 
     } 
     else if(after==3) { 
      shownText = "And"; 
     } 
     else if(after==4) { 
      shownText = "Andr"; 
     } 
     else if(after==5) { 
      shownText = "Andro"; 
     } 
     else if(after==6) { 
      shownText = "Androi"; 
     } 
     else if(after==7) { 
      shownText = "Android"; 
     } 
     else if(after==8) { 
      shownText = "Android A"; 
     } 
     else if(after==9) { 
      shownText = "Android Ap"; 
     } 
     else if(after==10) { 
      shownText = "Android App"; 
     } 
     else { 
      shownText = "Please try again"; 
     } 




    } 

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

     recordedString = (s.toString()); 


     update(); 


    } 




}; 
+0

Я думаю, вы не задавать ваш вопрос правильно. Что вы могли бы сказать под «остановкой»? Кроме того, ваш код ... ну ... не очень хорошо. Вы можете заменить этот глупый беспорядок, если/else if с помощью одного оператора if и вызова подстроки. – 323go

+0

Если бы я хотел, чтобы все это работало, прежде чем я больше поработал над спецификой. К остановке я имею в виду конец textwatcher, который находится в EditText. Я хочу сохранить текст в EditText, но не хочу, чтобы TextWatcher делал что-нибудь с ним. –

ответ

0

может быть, это может работать:

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

    if(s.toString().equals("Android App") && start == '.'){ 
     //here add an Empty TextWatcher to the EditText who has this TextWatcher added. 
} 
    recordedString = (s.toString()); 


    update(); 


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