TextWatcher на EditText Android

У меня есть 2 edittext, и я хочу установить для второго edittext значение 0 и сделать его неактивным, если значение первого edittext меньше 10. Я использовал TextWatcher, но при работе у меня возникает ошибка переполнения стека. Кто-нибудь может мне с этим помочь ?? мой код выглядит следующим образом:

    qteDev = (EditText) findViewById(R.id.edt_qtedev);
    qte = (EditText) findViewById(R.id.edt_qte);
    qte.addTextChangedListener(new TextWatcher() {

    public void onTextChanged(CharSequence s, int start, int before, int count) {           
         if(qte.getText().toString().equals(""))
             return ;
         int l = qte.getText().length();
         if (l == 1) {
             qteDev.setText("0");
             qteDev.setClickable(false);
             qteDev.setEnabled(false);
             qteDev.setActivated(false);
         }
    }

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

    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
    }
});

person karoui leila    schedule 07.12.2012    source источник
comment
Пожалуйста, опубликуйте ошибку (log-cat)   -  person Bigflow    schedule 07.12.2012


Ответы (2)


Попробуйте что-то подобное в своем методе afterTextChanged:

public void afterTextChanged(Editable s) {
    if(Integer.parseInt(s.toString()) < 10) {
        secondEditText.setText(0);
        secondEditText.setEnabled(false);
    }
}
person Tooroop    schedule 07.12.2012
comment
он по-прежнему делает ту же ошибку в строке secondEditText.setText(0); Я решу это по-своему, поставив 0 в качестве значения по умолчанию и проверив только активацию. Спасибо, в любом случае :) - person karoui leila; 07.12.2012

Попробуйте исправить метод afterTextChanged

qteDev = (EditText) findViewById(R.id.edt_qtedev);
qte = (EditText) findViewById(R.id.edt_qte);
qte.addTextChangedListener(new TextWatcher() {

public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
    if(s.toString().length() < 10){
        qteDev.setText("0");
        qteDev.setEnable(false);
    }
}

если любой вопрос, поместите любой комментарий. Благодарность

person kimkevin    schedule 05.06.2014