想要在 android 中使用键盘时触发 activity 并在键盘关闭时停止它并传递一个值?
want to trigger an activity when the keyboard is used in android and stop it and pass a value when the keyboard is closes?
我在 android 中创建了自己的输入法,因为我想触发此 activity 以在它开始时计算退格键 运行 并在用户关闭时发送一个值键盘?有办法吗?
注意:onKeyListener 不适用于软键盘
您可以为您的 editText 设置 OnKeyListener,这样您就可以检测任何按键
编辑:我们正在检查 KeyEvent.KEYCODE_BACK 退格键的一个常见错误,但实际上是 KeyEvent.KEYCODE_DEL(这个名字真的很混乱!)
editText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//You can identify which key pressed buy checking keyCode value with KeyEvent.KEYCODE_
if(keyCode == KeyEvent.KEYCODE_DEL){
//this is for backspace
}
return false;
}
});
在您的 IME 的 onKey()
方法中记录退格键的数量。
@Override
public void onKey(int primaryCode, int[] ints) {
-----
-----
if (primaryCode == Keyboard.KEYCODE_DELETE){
count++;
}
----
----
}
在 onStartInputView()
方法中重置此计数器。
现在在 onFinishInput()
方法中,触发你想要的 activity 并将退格键的数量作为额外的。
@Override
public void onFinishInput(){
Intent intent = new Intent(getApplicationContext(),MyActivity.class);
intent.putExtra("backspace_count",count);
startActivity(intent);
super.onFinish();
}
我希望这就是您要实现的目标。
我在 android 中创建了自己的输入法,因为我想触发此 activity 以在它开始时计算退格键 运行 并在用户关闭时发送一个值键盘?有办法吗?
注意:onKeyListener 不适用于软键盘
您可以为您的 editText 设置 OnKeyListener,这样您就可以检测任何按键 编辑:我们正在检查 KeyEvent.KEYCODE_BACK 退格键的一个常见错误,但实际上是 KeyEvent.KEYCODE_DEL(这个名字真的很混乱!)
editText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//You can identify which key pressed buy checking keyCode value with KeyEvent.KEYCODE_
if(keyCode == KeyEvent.KEYCODE_DEL){
//this is for backspace
}
return false;
}
});
在您的 IME 的 onKey()
方法中记录退格键的数量。
@Override
public void onKey(int primaryCode, int[] ints) {
-----
-----
if (primaryCode == Keyboard.KEYCODE_DELETE){
count++;
}
----
----
}
在 onStartInputView()
方法中重置此计数器。
现在在 onFinishInput()
方法中,触发你想要的 activity 并将退格键的数量作为额外的。
@Override
public void onFinishInput(){
Intent intent = new Intent(getApplicationContext(),MyActivity.class);
intent.putExtra("backspace_count",count);
startActivity(intent);
super.onFinish();
}
我希望这就是您要实现的目标。