Как установить значение по умолчанию для EditField, когда оно очищается? - PullRequest
1 голос
/ 06 декабря 2011

Я использую поле 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, если все символы в нем очищены.Является ли это возможным?Если да, то как это можно сделать.Пожалуйста, объясните с кодом, если это возможно ...

Ответы [ 3 ]

2 голосов
/ 06 декабря 2011

внутри onTextChanged ()

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

Я надеюсь, что вы пробовали эту основную вещь, так что говорит журнал ошибок во время принудительного закрытия ??

2 голосов
/ 06 декабря 2011

Вы должны попробовать добавить условие типа

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

, также используйте это в afterTextChanged

0 голосов
/ 06 декабря 2011

Ошибка связана с тем, что функция пытается выполнить квадрат при очистке значений.Переместите функцию квадрата в afterTextChanged, и в onTextChange проверьте длину текста редактирования, если он равен нулю, установите текст равным 0.

...