I have an EditText which only accepts numeric numbers defined like this:
<EditText android:id="@+id/routeInit_price"
android:layout_height="wrap_content"
android:layout_width="120dp"
android:layout_gravity="center_horizontal"
android:lines="1"
android:inputType="numberDecimal"/>
I am validating if there is a valid input like below to enable/disable a button. However, I doesn't receive an event on the backspace/delete button pressed event. How can I fix that? Because when the EditText is empty the button should be diabled.
EditText priceField = (EditText)findViewById(R.id.routeInit_price);
priceField.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
if(keyEvent.getAction() == KeyEvent.ACTION_UP)
{
if(((EditText)view).getText().toString().length() > 0)
ready.setEnabled(true);
else
ready.setEnabled(false);
}
return false;
}
});
Try this
priceField.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(priceField.getText().toString().length() > 0)
ready.setEnabled(true);
else
ready.setEnabled(false);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});