Android:数字键注册退格键 [英] Android: Numeric key register backspace pressed
本文介绍了Android:数字键注册退格键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个EditText只接受如下定义的数字:
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"/>
我验证是否有如下所示的有效输入来启用/禁用按钮。但是,我没有在退格/删除按钮按下的事件上收到一个事件。我该如何解决?因为当EditText为空时,该按钮应该是被打开的。
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;
}
});
推荐答案
尝试这个
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) {
}
});
这篇关于Android:数字键注册退格键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文