2013-04-09 12 views
8

Sadece kullanıcının bir editText'e girmesi durumunda olayı yakalamak istiyorum.OnEditorActionListener çalışmıyor

Tost mesajını almadım, "Enter tuşuna basma" değil, "Bazı tuşlara basıldı!" Ya.

Neyi yanlış yapıyorum?

myEditText.setOnEditorActionListener(new OnEditorActionListener() { 

    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 

    Toast.makeText(getApplicationContext(), "Some key pressed!", Toast.LENGTH_LONG).show(); 

     if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { 
      Toast.makeText(getApplicationContext(), "Enter pressed", Toast.LENGTH_LONG).show(); 
       return true; 
       } 
       return false; 
      } 
     }); 

E D İ T:

Eh o Android 2.3.3 üzerinde çalışan ve herhangi bir android cihaz üzerinde bu işi yapmak nasıl 4.1.2 Herhangi fikirler üzerinde çalışmıyor?

+0

TextLatcher'ı Edittext –

cevap

1
myEditText.setOnEditorActionListener(new OnEditorActionListener() { 

public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { 
    Toast.makeText(getApplicationContext(), "some key pressed", Toast.LENGTH_LONG) 
         .show(); 
    return false; 
} 
}); 

Bu kod benim EDITTEXT şey yazdıktan sonra Enter tuşuna basıldığında bazı anahtar preslenmiş beni görüntüler. Ama ben senin kodunda sorun değil.

25

Tek satır modunda EditText'u ayarlamayı deneyin.

editText.setSingleLine(); 

veya xml düzenini dosyasında

:

android:singleLine="true" 

GÜNCELLEME

android:singleLine="true" kullanımdan kaldırıldı. Şu andan itibaren programlı ayarlamak için bu davranışı

VE

editText.setMaxLines(1); 
editText.setInputType(InputType.TYPE_CLASS_TEXT); 

ulaşmak için android:inputType="text" ile android:maxLines="1" kullanın.

+2

ile ilgili herhangi bir olay için kullanabilirsiniz. Ayrıca diğer giriş türleri de (textpersonName " –

+0

@CameronKetcham gibi yeni satır karakterini engellerse çalışacaktır): true. "InputType.TYPE_TEXT_VARIATION_PASSWORD" ayrıca günümü kurtardığınız –

+0

tanrıyla çalışacak! –

1

xml'de android:imeOptions="actionGo" kullanın. actionDone artık onEditorAction ürününe yanıt vermiyor.

+0

İşlem, nexus 6p üzerinde çalışıyor, nuga 7.1 – murt

1

Benim için sorun XML android:inputType="textMultiline" ayarlanmıştı. textMultiline seçeneğini kaldırdığımda, EditorListener çalışmaya başladı.