申请一般onkeylistener

时间:2011-05-10 16:23:05

标签: android

新编程,现在到android。所以我希望我不要惹恼你。

如何在应用程序的顶层设置onkeylistener,无论如何都能捕获关键事件。

基本上我所拥有的是具有动态添加的edittexts的线性布局。 我想捕获Enter键事件并让它获取当前的edittext,执行一些测试然后创建一个新的edittext并将其添加到布局中。

我知道我可以(并且已经)为各个子视图实现onkeylistener,但不是程序员,创建一个edittext来监听输入以创建另一个监听输入以创建另一个的edittext时,逻辑似乎很奇怪。 ..(你知道这是怎么回事)

有人能指出我正确的方向吗? 我有更多关于我想做什么的信息,我只是不知道什么是相关的,什么不是,所以如果你需要更多,请告诉我。

感谢您的提前时间, 克里斯

3 个答案:

答案 0 :(得分:1)

查看http://developer.android.com/reference/android/app/Activity.html#dispatchKeyEvent%28android.view.KeyEvent%29

您想要的是在窗口中的任何视图处理它们之前拦截所有事件。如果处理了事件,则返回true;如果希望子节点进一步处理事件,则返回false。

答案 1 :(得分:0)

Ben说你的活动可以为你创建的每个EditText实现OnKeyListener,将OnKeyListener设置为活动。

editText1.setOnKeyListener(this);

然后在你的onKey实现中,你可以处理按键事件。

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    if(v == editText1) {
      // do something
    } else if( v == editText2 ) {
      // do something
    }

    return true; // return true if you handled the keypress
}

答案 2 :(得分:-1)

您的活动可以实现OnKeyListener。