Reputation: 67
I have 2 edittext and i want to set the second edittext to 0 and make it inactivated if the value of the first edittext is lower than 10. I used TextWatcher but i have a stack overflow error when running. Can anyone help me with this ?? my code is as following:
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
}
});
Upvotes: 0
Views: 823
Reputation: 2222
Try fixing your afterTextChanged method
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);
}
}
if any question, put any comment. thanks
Upvotes: 0
Reputation: 1884
Try something like this in your afterTextChanged
method:
public void afterTextChanged(Editable s) {
if(Integer.parseInt(s.toString()) < 10) {
secondEditText.setText(0);
secondEditText.setEnabled(false);
}
}
Upvotes: 1