Chcę utworzyć układ, w którym użytkownik wpisuje nazwę wykonawcy, a po naciśnięciu przycisku wyszukiwania na wirtualnej klawiaturze wyświetlana jest lista artystów.setOnEditorActionListener nie jest wywoływany w lollipop
View rootView = (View) inflater.inflate(R.layout.fragment_search, container, false);
EditText searchArtist = (EditText) rootView.findViewById(R.id.searchArtist);
searchArtist.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
makeToast();
return true;
}
return false;
}
});
Oto mój xml
<EditText
android:id="@+id/searchArtist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/search_artist"
android:imeOptions="actionSearch"
android:inputType="text">
<requestFocus />
Szukałem dużo w innych stackoverflow dotyczących tego postu, ale żaden z roztworów wydają się działać.
MinSDK 21, testowanie na węźle 6, kompilacjaSdkVersion 22, buildToolsVersion '22 .0.1 '.
Należy również zauważyć, że searchArtist (edittext) znajduje się wewnątrz fragmentu.
Więcej kontekstu: kod detektora znajduje się w metodzie onCreateView.
Próbowałem już tego. Niestety to nie działa. Ponadto, ponieważ miękkie metody wprowadzania mogą wykorzystywać wiele i pomysłowe sposoby wprowadzania tekstu, nie ma gwarancji, że naciśnięcie dowolnego klawisza na klawiaturze wygeneruje kluczowe zdarzenie: pozostawia to decyzję IME, a w rzeczywistości wysyłanie takich zdarzeń jest zniechęcane. . Nigdy nie należy polegać na odbiorze KeyEvents dla dowolnego klawisza metodą miękkiego wprowadzania danych. Src -> http://developer.android.com/reference/android/view/KeyEvent.html – GauravPandey