1

我在我的应用程序中使用 EditText 字段。我也为此添加了 addTextChangedListener 。在 onTextChanged 方法中,我调用了我的 squareFunction。代码就像..

value = (EditText)findViewById(R.id.amount);
value.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) 
            {
                squareFunction();

            }

            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {
                // TODO Auto-generated method stub

            }

            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub

            }
        });

现在我的问题:= 我正确地获得了输入数字的值。但是当我清除 EditField 时,出现错误并要求我“强制关闭”。如果其中的所有字符都被清除,我想将我的 editField 值设为 0。是否可以?如果是,如何做到。如果可能的话,请用代码解释......

4

3 回答 3

2

您应该尝试添加条件,例如

if(value.getText().toString().equalsIgnoreCase(""))
{
 Log.i(TAG,"EditText Clear");
//set value to 0
}
else
{
 squareFunction(); 
}

也用这个afterTextChanged

于 2011-12-06T06:10:02.143 回答
2

在 onTextChanged() 里面

if( arg0.length()==0)
{
value.setText("");
}

我希望你尝试过这个基本的东西,那么在强制关闭时错误日志会说什么?

于 2011-12-06T06:10:17.673 回答
0

该错误是由于函数在您清除值时尝试执行平方。将square函数移动到afterTextChanged,在onTextChange中,检查edittext的长度,如果为零,则设置text为0。

于 2011-12-06T06:11:15.717 回答