xml中的Android EditText OnKeyDown事件

时间:2011-10-30 16:59:37

标签: android xml events android-edittext onkeydown

有没有办法将OnKeyDown事件分配给xml中的EditText? 我知道如何在代码中执行它,但XML?

(实际上我不想捕捉'输入'按下......所以也许有更简单的方法?)

谢谢你, 罗恩

2 个答案:

答案 0 :(得分:2)

据我所知:不,没有一种“简单”的方法可以用XML捕获它。您只能在xml中捕获onClick。 因此,如果您必须使用XML,则可以执行以下操作:

  1. 使用您的自定义类扩展EditText。
  2. 然后

    1.2。在其上定义自定义样式属性(即“onKeyDown”)。看here怎么做。我建议你使用字符串作为值。

    1.3。现在棘手的部分:您必须使用反射来查找活动中的onKeyListener并将其作为KeyListener添加到您的自定义editText

    OR

    2.2简单地让你的Activity实现onKeyListener并在自定义EditText的构造函数中强制转换给定的Context

答案 1 :(得分:1)

您可以使用xml中的android:imeOptions来选择按钮的行为方式。

你可以像这样覆盖按钮:

editText.setOnEditorActionListener(new OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            /// Do stuff here
        }
    });