android edittext监听拦截,android中EditText监听键盘输入

设置

et.setKeyListener(this);实现接口

@Override

public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) {

LogUtil.i("onKeyDown-keyCode-" + keyCode);

if (index <= 8) {

if (keyCode == KeyEvent.KEYCODE_0) {

showInput(0, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_1) {

showInput(1, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_2) {

showInput(2, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_3) {

showInput(3, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_4) {

showInput(4, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_5) {

showInput(5, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_6) {

showInput(6, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_7) {

showInput(7, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_8) {

showInput(8, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_9) {

showInput(9, true);

return true;

} else if (keyCode == KeyEvent.KEYCODE_DEL) {

showInput(-1, false);

return true;

}

return false;

} else {

if (keyCode == KeyEvent.KEYCODE_DEL) {

showInput(-1, false);

return true;

}

}

return false;

}

//--------------------

@Override

public int getInputType() {

return 0;//不能设置成为其余,不然 只能监听到 删除键等 内容输入按键没法监听

}

@Override

public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {

return false;

}

@Override

public boolean onKeyOther(View view, Editable text, KeyEvent event) {

return false;

}

@Override

public void clearMetaKeyState(View view, Editable content, int states) {

}

控制显示

private void showInput(int value, boolean add) {

if (add) {

list.add(index, value);

((TextView) etParent.getChildAt(index)).setText("" + value);

index++;

} else {

if (index == 0) {

return;

}

index--;

list.remove(index);

((TextView) etParent.getChildAt(index)).setText("");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值