- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
好吧,我已经尝试了所有我能在 stackoverflow 和其他地方找到的解决方案,但最终结果一点都没有改变:触发 onKey 事件或 dispatchKeyEvent 的唯一键是虚拟键盘,并且只有按下两次。我无法拦截任何其他键(事件顶部有一个断点,并且 Eclipse 永远不会在其上停止,除非是上述输入的情况)。模拟器和真实设备上的行为是相同的。有任何想法吗?先感谢您我的代码 atm 看起来像这样:
public class ChatWindow {
@Override
public void onCreate(Bundle savedInstanceState) {
//...
setSendText();
//...
}
private void setUserInput() {
Intent i = getIntent();
mChatInput = (EditText) findViewById(R.id.UsrInput);
if (i.hasExtra(INTENT_EXTRA_MESSAGE)) {
mChatInput.setText(i.getExtras().getString(INTENT_EXTRA_MESSAGE));
}
mChatInput.setFocusable(true);
mChatInput.requestFocus();
mChatInput.setFocusableInTouchMode(true);
mChatInput.addTextChangedListener(new TextWatcher() {
public void afterTextChanged (Editable s){
Log.d(TAG, "afterTextChanged");
if (mChatInput.getText().length() >= 1) {
mChatInput.addTextChangedListener(this);
//mChatInput.setOnKeyListener(this);
//mChatInput.dispatchKeyEvent(this);
mSendButton.setEnabled(true);
}
else
mSendButton.setEnabled(false);
}
public void beforeTextChanged (CharSequence s, int start, int
count, int after)
{
Log.d(TAG, "beforeTextChanged");
}
public void onTextChanged (CharSequence s, int start, int before,
int count)
{
Log.d(TAG, s.toString());
}
});
}
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
//THIS HERE IS NEVER FIRED UNLESS THE ENTER KEY IS CLICKED TWICE
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getKeyCode()==KeyEvent.KEYCODE_ENTER) {
sendMessageIfNotNull();
return true;
}
return false;
}
最佳答案
dispatchKeyEvent 仅在 Activity 获得焦点时起作用
关于Android onkey - dispatchKeyEvent 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092438/
我正在尝试添加代码,使“Enter”键的作用类似于一个( protected )工作表的“Tab”键,但在任何其他工作表中则不然。我在 ThisWorkbook 模块中有这段代码: Private S
我想监听我的 EditText 的 的关键事件,每当按下 next 时,我想将 EditText 的文本保存到我的数据中目的。我实现了 OnKeyListener 及其 onKey() 方法,该方法从
我有一个带有多个组合框的用户表单。用户可以输入新项目或从列表中选择一项。 他可以开始输入想要的项目的第一个字母,但是当他犯错并以例如开始时。 “b”而不是“n”,他必须手动清除组合框或使用鼠标或箭头在
我正在尝试帮助此论坛中的另一位用户 ( reference )。目标是使用数字键盘上的 Enter 键来触发宏,而不是使用 Worksheet_Change 事件宏来实现相同目的。 在运行任何操作之前
我正在尝试使用 Application.OnKey 在按下 Enter 时启动一个功能,它工作得很好。但问题是,如果我打开了其他电子表格,它也会应用于这些电子表格。我应该把代码放在哪里,以便它只适用于
我想在 excel 模板 (.xlt) 中使用 UDF 我已经使用了 Application.OnKey("^v","MyFunction");我想在用户粘贴时使用单独的函数excel 中的单元格,即
我正在尝试在我的 Android 应用程序中注册方向键/电视遥控方向键点击。我目前正在使用 android 模拟器进行测试,我正在尝试在额外设置菜单下点击方向键输入。但我不确定为什么这不起作用 - 任
有人了解链接浏览器吗?我正在开发一个用于链接(文本模式)的应用程序,该应用程序在使用 Linux 的终端上运行。问题是不会记录任何“按键”事件(向下、向上或按下)。这是我正在使用的 JavaScrip
我正在尝试用 Python turtle 创建一个类似射击游戏的游戏(它基本上是游戏 Boom dots 的副本)。但是我有很多问题,因为我是编程新手。这次命令 onkey() 不起作用。我尝试了一切
简单问题,Turtle.Onkey() 的 Enter 键的术语是什么 我尝试过 turtle.onkey(check, 'Enter') 但出现错误: TclError: bad event typ
我正在学习一本书中的教程。我知道怎么猜对了吗?好吧,无论如何,我已经到了我们正在制作一个允许用户输入文本并按下按钮的简单应用程序的地步。按下按钮时,输入的文本将全部转换为大写。 我们在应用程序中添加了
好吧,我已经尝试了所有我能在 stackoverflow 和其他地方找到的解决方案,但最终结果一点都没有改变:触发 onKey 事件或 dispatchKeyEvent 的唯一键是虚拟键盘,并且只有按
您好,我正在使用 codeigniter 框架。我已经通过 onkey 更改完成了自动填充操作。我使用 ajax 将 id 值发布到我的 Controller 函数,该函数将从服务表中获取单个数据行。
我正在使用 onKey 方法捕捉键盘事件/按键: public boolean onKey(View arg0, int arg1, KeyEvent arg2) { //do somethi
我正在使用此代码: public boolean onKey(View v, int keyCode, KeyEvent event) { msg = (EditText)findViewById(R
我想禁用 Ctrl 按钮的快捷方式,我发现 Application.onkeyMethod但我不知道我可以把它们放在哪里。 Application.onkey "^p",""在工作簿打开事件中有效,但
我在“ThisWorkbook”对象中有以下代码: Sub Workbook_Open() Application.OnKey "^a", "SS_1" Application.OnK
我对 php 和 javascript 比较陌生,我知道我犯了一些愚蠢的错误。但是,我的问题是,如果我将字符串添加到变量中,它会在 ' this 之前添加“\”。我的 JavaScript 函数: $
使用Application.OnKey , ,我可以使 Excel 运行 每当被按下。 我想让它做任何紧迫的事情默认情况下会完成,然后运行 。换句话说,我不想使用 OnKey要覆盖某个键的功能
我正在开发一个模块,该模块使用按键事件来检测是否按下了退格键或删除键,如果满足该事件的条件,则相应的单元格将清除内容。 我有一个启动相应子程序的程序,但收到错误“找不到宏” 我已附上错误图像和下面的代
我是一名优秀的程序员,十分优秀!