gpt4 book ai didi

Android:如何通过示例获取任何 KeyPress 事件?

转载 作者:可可西里 更新时间:2023-11-01 18:54:56 26 4
gpt4 key购买 nike

我想在用户按下任意键时获取键值,并根据在 android 中按下的键执行操作。

例如如果用户按下“A”键,那么我想获取该值、比较、做某事。

最佳答案

这个问题的答案应该是双重的。它由 key 的生成方式决定。如果按下硬件键,则下面描述的两种方法均有效。如果是按下软键,则视实际情况而定。

1.) 如果按键是通过长按菜单键获得的软键盘按下的结果:

您需要仔细重写以下函数:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) {

switch (keyCode) {
case KeyEvent.KEYCODE_A:
{
//your Action code
return true;
}
}
return super.onKeyDown(keyCode, event);
}

2.) 如果您的 Activity 包含 EditText,并且软键盘是从中获取的,则第一种方法不起作用,因为按键事件已被 EditText 使用。您需要使用文本更改监听器:

mMyEditText.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s)
{
}
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
/*This method is called to notify you that, within s, the count characters beginning at start are about to be replaced by new text with length after. It is an error to attempt to make changes to s from this callback.*/
}
public void onTextChanged(CharSequence s, int start, int before, int count)
{
}
);

关于Android:如何通过示例获取任何 KeyPress 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4171234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com