检测空文本框中的文本更改

时间:2015-09-17 01:02:19

标签: java android android-studio

好的,所以到目前为止我有这个代码:

    final EditText textBox1 = (EditText) findViewById(R.id.editText);
    textBox1.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            try {
                avalue = (Integer.parseInt(textBox1.getText().toString()));
                Toast.makeText(getApplicationContext(), "Works " + avalue, Toast.LENGTH_LONG).show();
                UpdateMain();
            } finally {
                return;
            }

        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

这很好用,但我仍然希望在清空文本框时删除更新程序或删除文本框中的所有字符,因为默认情况下没有数字等于1.

1 个答案:

答案 0 :(得分:0)

这对你有用吗?

final EditText textBox1 = (EditText) findViewById(R.id.editText);
textBox1.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void afterTextChanged(Editable s) {
        try {
            avalue = 0;
            if (s.length() > 0) {
                avalue = Integer.parseInt(s.toString());
                Toast.makeText(getApplicationContext(), "Works " + avalue, Toast.LENGTH_LONG).show();
            }
            UpdateMain();
        } finally {
            return;
        }
    }
});

注意:

  • 我决定将逻辑放在afterTextChanged()中,但如果更合适,可以将其放回onTextChanged()
  • 此外,如果框为空,则此逻辑将avalue设置为0。您可以根据需要更改此逻辑。