忽略 Android 上的按键
Ignore key press on Android
当我按 0、1 或 2 中的不同键时,应该很容易忽略按键事件,但这段代码对我不起作用:
txtInput.setOnKeyListener(new EditText.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_0 ||
keyCode==KeyEvent.KEYCODE_1 ||
keyCode==KeyEvent.KEYCODE_2 ) {
return false;
}else {
return true;
}
}
});
返回 true 应该是这样做的方法...怎么了?
试试这个,我想通了,因为你做了一个 onKeyListener
默认的 return 是 false
,所以如果它是 false
并且它显示数字,那么将其更改为 true
并且不会 ;)
etpew.setOnKeyListener(new EditText.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_0 ||
keyCode==KeyEvent.KEYCODE_1 ||
keyCode==KeyEvent.KEYCODE_2 ) {
Toast.makeText(MainActivity.this, "NO!", Toast.LENGTH_SHORT).show();
return true;
}else {
return false;
}
}
});
作为 View.OnKeyListener
Documentation says,
Returns
True if the listener has consumed the event, false otherwise.
您也可以在 EditText
中添加这个
<EditText android:inputType="text" android:digits="3,4,5,6,7,8,9,*,qwertzuiopasdfghjklyxcvbnm" />
你也可以尝试这个方法,但第一个更好...你可以使用 InputFilter
如下:
etpew.setFilters(new InputFilter[]{
new InputFilter() {
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
if (src.toString().matches("[a-zA-Z3-9 ]*")) //I've removed the 0,1,2 but if you want to control more stuff just add on this method.
{
return src;
}
return "";
}
}
});
当我按 0、1 或 2 中的不同键时,应该很容易忽略按键事件,但这段代码对我不起作用:
txtInput.setOnKeyListener(new EditText.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_0 ||
keyCode==KeyEvent.KEYCODE_1 ||
keyCode==KeyEvent.KEYCODE_2 ) {
return false;
}else {
return true;
}
}
});
返回 true 应该是这样做的方法...怎么了?
试试这个,我想通了,因为你做了一个 onKeyListener
默认的 return 是 false
,所以如果它是 false
并且它显示数字,那么将其更改为 true
并且不会 ;)
etpew.setOnKeyListener(new EditText.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_0 ||
keyCode==KeyEvent.KEYCODE_1 ||
keyCode==KeyEvent.KEYCODE_2 ) {
Toast.makeText(MainActivity.this, "NO!", Toast.LENGTH_SHORT).show();
return true;
}else {
return false;
}
}
});
作为 View.OnKeyListener
Documentation says,
Returns True if the listener has consumed the event, false otherwise.
您也可以在 EditText
<EditText android:inputType="text" android:digits="3,4,5,6,7,8,9,*,qwertzuiopasdfghjklyxcvbnm" />
你也可以尝试这个方法,但第一个更好...你可以使用 InputFilter
如下:
etpew.setFilters(new InputFilter[]{
new InputFilter() {
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
if (src.toString().matches("[a-zA-Z3-9 ]*")) //I've removed the 0,1,2 but if you want to control more stuff just add on this method.
{
return src;
}
return "";
}
}
});