Как установить значение по умолчанию для EditField, когда оно очищается?

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, возникает ошибка и прошу меня "Force Close". Я хочу, чтобы мое значение editField равнялось 0, если все символы в нем очищены. Является ли это возможным? Если да, то как это можно сделать. Plz объяснить с кодом, если это возможно...

Теги:

3 ответа

2
Лучший ответ

внутри onTextChanged()

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

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

  • 0
    Извини, дорогая. Я новичок в Android. Я просто изучаю основы. Я попробовал эту логику. но вместо этого arg0.length () == 0 я проверил arg0.length () == 1. спасибо тебе дорогая за твою своевременную помощь ...
2

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

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

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

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню