在Android EditText中拦截编号0到9
Intercept Number 0 to 9 in Android EditText
我想在android中拦截来自软键盘的0到9个按键事件。我尝试了很多方法但没有成功。任何一点帮助都会对我有很大帮助。
我正在做的是,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_12)
{
Toast.makeText(context, "Pressed", Toast.LENGTH_LONG).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
在我的自定义 EditText class 中,但它不起作用,我错过了什么?我试了很多键码都没有结果
使用文本观察器,它更简单:
Class 级别:
EditText editText;
在 onCreate 中:
editText = (EditText)findViewById(R.id.yourEdittext)
editText.addTextChangedListener(mTextEditorWatcher);
在 onCreate 之外(Class 级别):
final TextWatcher mTextEditorWatcher = new TextWatcher(){
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
System.out.println("Entered text: "+editText.getText());
// USe edit_text.getText(); here
}
public void afterTextChanged(Editable s) {
}
};
如果您想将编辑文本中的条目限制为仅字母,请在编辑文本控件的 XML 中添加:
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
如果您不喜欢上面的内容并希望通过代码实现此目的,请使用以下内容:
editText.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence chr, int start,
int end, Spanned dst, int dstart, int dend) {
if(chr.equals("")){
return chr;
}
if(chr.toString().matches("[a-zA-Z ]+")){
return chr;
}
return "";
}
}
});
我想在android中拦截来自软键盘的0到9个按键事件。我尝试了很多方法但没有成功。任何一点帮助都会对我有很大帮助。
我正在做的是,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_12)
{
Toast.makeText(context, "Pressed", Toast.LENGTH_LONG).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
在我的自定义 EditText class 中,但它不起作用,我错过了什么?我试了很多键码都没有结果
使用文本观察器,它更简单:
Class 级别:
EditText editText;
在 onCreate 中:
editText = (EditText)findViewById(R.id.yourEdittext)
editText.addTextChangedListener(mTextEditorWatcher);
在 onCreate 之外(Class 级别):
final TextWatcher mTextEditorWatcher = new TextWatcher(){
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
System.out.println("Entered text: "+editText.getText());
// USe edit_text.getText(); here
}
public void afterTextChanged(Editable s) {
}
};
如果您想将编辑文本中的条目限制为仅字母,请在编辑文本控件的 XML 中添加:
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
如果您不喜欢上面的内容并希望通过代码实现此目的,请使用以下内容:
editText.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence chr, int start,
int end, Spanned dst, int dstart, int dend) {
if(chr.equals("")){
return chr;
}
if(chr.toString().matches("[a-zA-Z ]+")){
return chr;
}
return "";
}
}
});