0

2 つの edittext があり、2 番目の 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
    }
});
4

2 に答える 2

1

afterTextChangedメソッドで次のようなことを試してください。

public void afterTextChanged(Editable s) {
    if(Integer.parseInt(s.toString()) < 10) {
        secondEditText.setText(0);
        secondEditText.setEnabled(false);
    }
}
于 2012-12-07T15:26:19.143 に答える
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);
    }
}

質問があれば、コメントを入れてください。ありがとう

于 2014-06-05T19:59:28.777 に答える