2013-05-15 2 views
0

Я пробовал поиск неточно. Мне нужно, чтобы edittext всегда проверял, изменяется ли его значение, и если он что-то что-то делает. Я посмотрел на слушателя OnTouch, но он просто проверяет, правильно ли он «тронут»?Как получить значение из edittext динамически?

Иллюстрированные через код:

EditText a = (EditText) findViewById(R.id.MyID); 
String check = a.getText().toString(); 
if(check.contains(" my String ")) 
{`//do something} 
else{//keep checking until it contains specified string} 

Пример может быть кнопкой "автоматический подсчет"

ОТВЕТА = Это работает в вашем OnCreate метод. Спасибо всем, или указать мне TextWatcher()

myEditText.addTextChangedListener(new TextWatcher() 
     { 
      public void afterTextChanged(Editable s){ 
       if(myEditText.getText().toString().equals(" my String")){ 
        //do something 

     } 

       } 

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

     } 
}); 

ответ

0

Вам нужно настроить TextWatcher. Создайте класс, как это в вашем Activity

private class TempWatcher implements TextWatcher { 

@Override 
public void afterTextChanged(Editable s) { 
} 

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

@Override 
public void onTextChanged(CharSequence s, int start, int before, int count) 
{ 
    if (s.length() > 0) 
    { 
      if(s.contains(" my String ")) 
      {`//do something} 
    } 
} 

и прикрепить TextWatcher к вашим EditText, как это после того, как вы инициализировать EditText

yourEditText.addTextChangedListener(new TempWatcher()); 

Тогда каждый раз, когда ваши изменения текста, этот слушатель будет проверять значение. Вам даже не нужен else с этим, потому что это будет просто продолжать проверять, когда текст изменяется

+0

Отличный ответ, но мне нужно что-то сделать в моем методе oncreate. Я думал о возврате логического, но это не работает, потому что один реализует textwatcher – user2370642

+0

Я не понимаю. Что вам нужно сделать в вашем 'onCreate()'? Где вы хотите вернуть логическое значение? – codeMagic

+0

Мой проект включает в себя синтаксический разбор строки и мне нужно создать значения spinner из этой строки, если она содержит «my String» – user2370642

0

То, что вы хотите это TextWatcher Вот как вы можете реализовать его:

a.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if(s.contains(" my String ")){ 
       //dosomething 
      } 
     } 
     @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 
     } 
    }); 
Смежные вопросы