2012-12-07 66 views
0

我有2个edittext,我想设置第二个edittext为0,并使其失效,如果第一个edittext的值低于10.我使用TextWatcher但运行时出现堆栈溢出错误。谁能帮我这个 ?? 我的代码如下:EditText上的TextWatcher Android

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 
    } 
}); 
+1

请发布错误(log-cat) – Bigflow

回答

1

尝试这样的事情在你的afterTextChanged方法:

public void afterTextChanged(Editable s) { 
    if(Integer.parseInt(s.toString()) < 10) { 
     secondEditText.setText(0); 
     secondEditText.setEnabled(false); 
    } 
} 
+0

好吧,我会试试看。谢谢 –

+0

它仍然在行中产生相同的错误secondEditText.setText(“0”);我将通过将0作为默认值并测试激活来解决这个问题。不管怎么说,还是要谢谢你 :) –

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); 
    } 
} 

如果有任何问题,把任何评论。谢谢

相关问题