Android, Ekran Klavyesi için Bitti tuşunu algıladı


111

DoneEkran klavyesinin tuşuna ne zaman basıldığını tespit etmek mümkün mü ?

Yanıtlar:


277

Evet mümkün:

editText = (EditText) findViewById(R.id.edit_text);

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            // do your stuff here
        }
        return false;
    }
});

Aşağıdaki kitaplıkları içe aktarmanız gerekeceğini unutmayın:

import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;

Teşekkürler, bana harika bir başlangıç ​​noktası verdin. Bunun EditorInfo.IME_ACTION_SEARCHyerine lens arama düğmesi için kullanmam gerekiyordu .
TechNyquist

Merhaba, Bu ButterKnife ile mümkün mü? @ Mikeyaworski @ SzabolcsBerecz
Maulik Dodia

1
@MaulikDodia butterknife'ın @OnEditorAction ()
Ridcully

Teşekkürler. I will with it @ Ridcully
Maulik Dodia

3

Editör Bilgisi, Android uygulamanızda herhangi bir tür kullanıcı girdisiyle uğraşmanız gerektiğinde en kullanışlı sınıftır. Örneğin, oturum açma / kayıt / arama işlemlerinde daha doğru klavye girişi için kullanabiliriz. Bir düzenleyici bilgi sınıfı, bir giriş yönteminin doğrudan metin içeriğini düzenleme ile iletişim kuracağı metin düzenleme nesnesi için çeşitli öznitelikleri açıklar.

IME_ACTION_DONE ile deneyebilirsiniz .

Bu eylem Done, hiçbir şeyin girilmemesi için bir işlem gerçekleştirir ve IMEkapatılır.

SetOnEditorActionListener'ı kullanma

EditTextObj.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        boolean handled = false;
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            /* Write your logic here that will be executed when user taps next button */
            handled = true;
        }
        return handled;
    }
});

Özel klavye ile aynı problem nasıl çözülür?
Gaju Kollur

0

Butterknife kullanarak bunu yapabilirsiniz

@OnEditorAction(R.id.signInPasswordText)
boolean onEditorAction(TextView v, int actionId, KeyEvent event){
    if (actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        /* Write your logic here that will be executed when user taps next button */
    }
    return false;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.