Я использую поле 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 объяснить с кодом, если это возможно...
внутри onTextChanged()
if( arg0.length()==0)
{
value.setText("");
}
я надеюсь, что вы пробовали эту основную вещь, так что то, что говорит об ошибке в момент закрытия силы?
Вы должны попробовать добавить условие, подобное
if(value.getText().toString().equalsIgnoreCase(""))
{
Log.i(TAG,"EditText Clear");
//set value to 0
}
else
{
squareFunction();
}
также используйте это в afterTextChanged
Ошибка связана с функцией, пытающейся выполнить квадрат, когда вы очищаете значения. Переместите квадратную функцию в afterTextChanged, а в onTextChange проверьте длину edittext, если она равна нулю, установите текст в 0.