Android execute function after pressing “Enter” for EditText

五迷三道 提交于 2019-12-30 04:15:11

问题


I have been following the official Android tutorials and somehow am having a problem with this very simple example to execute a function after pressing "Enter" for an EditText.

I understand what I'm supposed to do and seem to have everything setup properly, but Eclipse is complaining with this line:

edittext.setOnKeyListener(new OnKeyListener() {

It underlines setOnKeyListener with the error:

The method setOnKeyListener(View.OnKeyListener) in the type View is not applicable for the arguments (new DialogInterface.OnKeyListener(){})

And also underlines OnKeyListener with the error:

The type new DialogInterface.OnKeyListener(){} must implement the inherited abstract method DialogInterface.OnKeyListener.onKey(DialogInterface, int, KeyEvent)

Perhaps someone can shoot me in the right direction? Before I try other solutions (which I've already found on stackoverflow), I'd really like to figure this out because it has me flustered that something so simple to follow, as an official tutorial, doesn't seem work.


回答1:


From what I can see, It looks like you have the wrong import.

Try

edittext.setOnKeyListener(new View.OnKeyListener() {

OR add this import

import android.view.View.OnKeyListener;

and Remove this one

import android.content.DialogInterface.OnKeyListener;



回答2:


To receive a keyboard event, a View must have focus. To force this use:

edittext.setFocusableInTouchMode(true);
edittext.requestFocus();

After that continue with the same code in the example:

edittext.setOnKeyListener(new View.OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // If the event is a key-down event on the "enter" button
        if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
            (keyCode == KeyEvent.KEYCODE_ENTER)) {
          // Perform action on key press
          Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
          return true;
        }
        return false;
    }
});



回答3:


Delete the import statement that has DialogInterface, then import the View.OnKeyListener.



来源:https://stackoverflow.com/questions/8233586/android-execute-function-after-pressing-enter-for-edittext

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!