【问题标题】:EditText OnKeyDownEditText OnKeyDown
【发布时间】:2011-09-05 09:07:54
【问题描述】:

我已经以编程方式声明了一个 EditText(即不在 XML 中),并希望对其应用 OnKeyDown 处理程序。显示的代码不起作用。上下文是,我正在尝试从键盘捕获一个短字符串,其中不应包含控制字符(我从 Enter 键开始)。也许有更好的方法?

谢谢!

        public EditText ttsymbol;

/** Called when the activity is first created. */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { 
        switch (keyCode) { 
        case KeyEvent.KEYCODE_ENTER: 
            // IGNOREenter key!! 
            return true; 

        }return false; 
  }

【问题讨论】:

    标签: android


    【解决方案1】:

    您必须将 onKeyListener 绑定到您的 editText。

    myEditText.setOnKeyListener(new OnKeyListener() {           
                @Override
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    if (event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
                        //do something here
                        return true;
                    }
                    return false;
                }
            });
    

    【讨论】:

    • 谢谢,这对我来说看起来不错,但对编译器来说却不是:令牌“setonKeyListener”VariableDeclaratorId 出现语法错误,此令牌后预期
    • 您是否将编辑文本实例化为:ttsymbol = new EditText(context)?在此之后,您应该能够添加 onKeyListener。只需将“myEditText”替换为您的姓名,例如“ttsymbol”!
    • public EditText ttsymbol= new EditText(getBaseContext()); tsymbol.setOnKeyListener (new OnKeyListener() { 标记“setOnKeyListener”上的语法错误,= 预期在此标记之后
    • 在您的评论中您写了tsymbol.setOnKeyListener而不是ttsymbol.setOnKeyListener 我发布的示例对我很有用。
    • 请记住,此方法只保证对硬件键盘有效,软件键盘没有义务释放这些事件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2012-03-22
    • 2012-10-08
    • 1970-01-01
    • 2015-04-14
    • 2017-12-25
    • 2014-02-17
    相关资源
    最近更新 更多