Chcę zmienić domyślną etykietę "Gotowe", która pojawi się na wirtualnej klawiaturze. Oto co próbowałem bez powodzenia:Android: Nie rozumiem, jak używać setImeActionLabel
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
mSearchInput.setImeActionLabel(getString(R.string.search_action_label), EditorInfo.IME_ACTION_DONE);
I am stanie jednak obsłużyć kliknij na tym przycisku, z tego:
mSearchInput.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
performSearch();
return true;
}
return false;
}
});
Jestem pojęcia, jak W tej chwili mogę zmienić etykietę tego przycisku.
To ciekawe. Kiedy przełączam się na krajobraz w emulatorze, miękka klawiatura już się nie pojawia. Zauważyłem również, że aplikacja Wiadomości na przykład umieszcza buźkę (":-)") zamiast przycisku "Gotowe". Czy używa niestandardowego układu klawiatury, czy co? Dzięki za cynk, przy okazji. – Felix
Miękka klawiatura nie jest wyświetlana, ponieważ emulator symuluje fizyczną klawiaturę wyświetlaną w trybie poziomym (tak jak miękka klawiatura nie pojawi się na G1, jeśli ją otworzysz). Możesz wyłączyć klawiaturę modyfikując plik config.ini dla AVD, dodając 'hw.keyboard = no'. Jeśli chodzi o aplikację Wiadomości, właśnie sprawdziłem jej źródło i domyślam się, że buźka jest produktem ubocznym 'inputType =" textShortMessage "', a brak przycisku "Wyślij" wynika z "imeOptions =" flagNoEnterAction "', ale tak naprawdę nie przetestowałem tego. Pamiętaj, że Touch Input ignoruje obie flagi. – mernen
Z kodu w pierwotnym pytaniu można podać przycisk "powrotu" fizycznej klawiatury, jeśli po prostu dodajesz ten kod "LUB": if (actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) – CircuitBreaker716