2013-06-15 3 views
0

У меня есть EditText и CheckBox. В EditText есть только номера входных данных. При вводе значения 0 в EditText мне бы хотелось, чтобы CheckBox отключился. Но если введенное значение больше 0, тогда CheckBox должен быть включен. Проверки должны выполняться «на лету», поэтому при наборе текста и после каждого ввода символов проверка должна быть выполнена. Я наткнулся на afterTextChanged, но я не могу заставить его работать, может ли кто-нибудь помочь мне здесь?Включение/выключение флажка зависит от заданного значения в EditText

public class AddBuilding extends Activity implements TextWatcher { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.building); 

     myEditText.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void afterTextChanged(Editable s) { 
      if (Integer.parseInt(myEditText.getText().toString()) < 0) 
       myCheckBox.setEnabled(false); 
      else 
       myCheckBox.setEnabled(true); 

     } 

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

     } 

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

     } 
    }); 
+0

Он должен работать. У вас есть какие-то ошибки? В вашем коде я не видел, где вы используете методы findViewById для заполнения myEditText var. Поэтому он должен быть нулевым. – Lingviston

+0

Да, когда я открываю свою активность, это уже дает мне исключение с нулевым указателем, но до того, как я добавил 'myEditText.addTextChangedListener', работа работала отлично. У меня есть findViewByID, просто не публиковал его, потому что это определенно ясно – mXX

ответ

2

Попробуйте использовать не myEditText.getText().toString() но s.toString()

0

Если afterTextChanged метод действительно внутри OnCreate метод, как показано на рисунке, то он имеет неправильный масштаб, и он никогда не будет вызван.

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

  • Нет связанных вопросов^_^