【问题标题】:TextWatcher on EditText AndroidEditText Android 上的 TextWatcher
【发布时间】:2012-12-07 15:18:30
【问题描述】:

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

【问题讨论】:

  • 请贴出错误(log-cat)

标签: android textwatcher


【解决方案1】:

在您的 afterTextChanged 方法中尝试这样的操作:

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

【讨论】:

  • 它仍然在 secondEditText.setText("0");我将通过将 0 作为默认值并仅测试激活来解决它。无论如何谢谢:)
【解决方案2】:

尝试修复您的 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);
    }
}

如果有任何问题,请发表任何评论。谢谢

【讨论】:

    猜你喜欢
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2012-11-01
    相关资源
    最近更新 更多