У меня есть 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
}
});
Он должен работать. У вас есть какие-то ошибки? В вашем коде я не видел, где вы используете методы findViewById для заполнения myEditText var. Поэтому он должен быть нулевым. – Lingviston
Да, когда я открываю свою активность, это уже дает мне исключение с нулевым указателем, но до того, как я добавил 'myEditText.addTextChangedListener', работа работала отлично. У меня есть findViewByID, просто не публиковал его, потому что это определенно ясно – mXX