2011-11-22 20 views
12

Podążałem za oficjalnymi samouczkami Androida i jakoś mam problem z this very simple example, aby wykonać funkcję po naciśnięciu "Enter" dla EditText.Funkcja uruchamiania Androida po naciśnięciu "Enter" w EditText

rozumiem, co mam robić i wydają się mieć konfigurację wszystko prawidłowo, ale Eclipse narzeka z tej linii:

edittext.setOnKeyListener(new OnKeyListener() { 

Podkreśla setOnKeyListener z błędem:

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

Podkreśla także: OnKeyListener z błędem:

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

Być może ktoś może mnie zastrzelić we właściwym kierunku? Zanim spróbuję innych rozwiązań (które już znalazłem na stackoverflow), naprawdę chciałbym to rozgryźć, ponieważ jestem podenerwowany, że coś tak prostego do naśladowania, jak oficjalny tutorial, nie wydaje się działaniem.

Z góry dziękuję.

+0

coś takiego? http://stackoverflow.com/questions/4451374/use-enter-key-on-softkeyboard-instead-of-clicking-button/4451825#4451825 – AedonEtLIRA

Odpowiedz

13

Z tego, co widzę, wygląda na to, że masz niewłaściwy import.

Spróbuj

edittext.setOnKeyListener(new View.OnKeyListener() { 

lub dodać ten import

import android.view.View.OnKeyListener; 

i usunąć ten

import android.content.DialogInterface.OnKeyListener; 
+0

Doskonale, dzięki za wyjaśnienie, dlaczego to nie zadziałało. Będę musiał bardzo uważać na mój import od teraz :) – user1060582

+0

to nie działa dla mnie – saravanan

2

Usuń instrukcję import, która ma DialogInterface, a następnie zaimportuj View.OnKeyListener.

+1

Piękne, wielkie dzięki! Właśnie to uzyskuję do nauki CTRL + SHFT + O przed czymkolwiek. Dzięki wszystkim, którzy odpowiedzieli, ta strona jest fantastyczną pomocą. – user1060582

49

Aby odbierać zdarzenia klawiatury, widok koniecznością mieć ostrość. Aby wymusić to zastosowanie:

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

Po że nadal z tym samym kodem na przykład:

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; 
    } 
}); 
+0

fantastyczne, dzięki !!! W końcu uczę się programowania na Androida #boilerplate –

Powiązane problemy