我有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
}
});
答案 0 :(得分:1)
在afterTextChanged
方法中尝试这样的事情:
public void afterTextChanged(Editable s) {
if(Integer.parseInt(s.toString()) < 10) {
secondEditText.setText(0);
secondEditText.setEnabled(false);
}
}
答案 1 :(得分:0)
尝试修复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);
}
}
如果有任何问题,请发表评论。感谢