Android mendeteksi tekan tombol Selesai untuk OnScreen Keyboard

111

Apakah mungkin untuk mendeteksi saat Donetombol keyboard onScreen ditekan?

pankajagarwal
sumber

Jawaban:

276

Ya, itu mungkin:

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

Perhatikan bahwa Anda harus mengimpor pustaka berikut:

import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
Szabolcs Berecz
sumber
Terima kasih, Anda memberi saya titik awal yang bagus. Saya hanya perlu menggunakan EditorInfo.IME_ACTION_SEARCHtombol pencarian lensa saja.
TechNyquist
Hai, Apakah ini mungkin dengan ButterKnife? @ Mikeyaworski @ SzabolcsBerecz
Maulik Dodia
1
@MaulikDodia Anda dapat menggunakan @OnEditorAction pisau butterknife ()
Ridcully
Terimakasih. Saya akan dengan itu @ Ridcully
Maulik Dodia
3

Info Editor adalah kelas yang paling berguna ketika Anda harus berurusan dengan semua jenis input pengguna di aplikasi Android Anda. Misalnya dalam operasi login / registrasi / pencarian, kita dapat menggunakannya untuk input keyboard yang lebih akurat. Kelas info editor menjelaskan beberapa atribut untuk objek pengeditan teks yang metode inputnya akan langsung berkomunikasi dengan konten teks edit.

Anda dapat mencoba dengan IME_ACTION_DONE .

Tindakan ini melakukan Doneoperasi tanpa masukan dan IMEakan ditutup.

Menggunakan setOnEditorActionListener

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;
    }
});
IntelliJ Amiya
sumber
Bagaimana cara menangani masalah yang sama dengan keyboard khusus?
Gaju Kollur
0

Menggunakan Butterknife Anda bisa melakukan ini

@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;
}
Zayin Krige
sumber