Ale*_*eAP 18 java android onkeyup
我是Android开发的新手,我似乎无法找到关于如何使用onKeyUp监听器的好指南.
在我的应用程序中,我有一个很大的EditText,当有人按下并释放一个键,EditText我想调用一个函数,将执行正则表达式EditText.
我不知道我是如何使用onKeyUp的.有人可以告诉我怎么样?
Dam*_*jan 29
正确的方法是使用TextWatcher类.
EditText tv_filter = (EditText) findViewById(R.id.filter);
TextWatcher fieldValidatorTextWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (filterLongEnough()) {
populateList();
}
}
private boolean filterLongEnough() {
return tv_filter.getText().toString().trim().length() > 2;
}
};
tv_filter.addTextChangedListener(fieldValidatorTextWatcher);
Run Code Online (Sandbox Code Playgroud)
R H*_*hes 11
更正:
有一段时间,我使用了泛型onKeyListener.我很快发现我的代码被调用了两次.一旦按下按键,一次按下按键.我现在使用以下监听器,只调用一次代码.
"if (event.getAction() == KeyEvent.ACTION_UP)"是关键.
OnKeyListener keyListener = new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) {
//do something here
}
return false;
}
};
Run Code Online (Sandbox Code Playgroud)
我发现onKeyUp()自动调用Activity中的每个控件.如果这是你想要的,就像添加它一样将它添加到Activity中onCreate()
例:
public boolean onKeyUp(int keyCode, KeyEvent event) {
//do something here
return false;
};
Run Code Online (Sandbox Code Playgroud)
我知道这是一个老问题,但也许这会帮助其他人解决同样的问题.
| 归档时间: |
|
| 查看次数: |
39250 次 |
| 最近记录: |