Lo que quiero hacer es cambiar la etiqueta predeterminada "Listo" que aparece en el teclado virtual. Esto es lo que he intentado sin suerte:Android: No se puede saber cómo usar setImeActionLabel
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
mSearchInput.setImeActionLabel(getString(R.string.search_action_label), EditorInfo.IME_ACTION_DONE);
I am capaz, sin embargo, para manejar un clic en ese botón, con esto:
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;
}
});
no tengo ni idea de cómo Puedo cambiar la etiqueta en ese botón en este momento.
Eso es curioso. Cuando cambio al paisaje en el emulador, el teclado virtual ya no aparece. Además, noté que la aplicación de mensajería, por ejemplo, pone un emoticono (":-)") en lugar del botón "Listo". ¿Utiliza un diseño de teclado personalizado, o qué? Gracias por el consejo, por cierto. – Felix
El teclado virtual no aparece porque el emulador simula que un teclado físico está expuesto en modo horizontal (igual que el teclado virtual no aparecerá en un G1 si lo abre). Puede desactivar el teclado modificando el archivo config.ini para el AVD, agregando 'hw.keyboard = no'. En cuanto a la aplicación Messaging, acabo de verificar su fuente, y supongo que el emoticono es un subproducto de 'inputType =" textShortMessage "' y la falta de un botón "Enviar" se debe a 'imeOptions =" flagNoEnterAction "', pero en realidad no lo he probado. Ten en cuenta que Touch Input parece ignorar ambas banderas. – mernen
Desde el código en la pregunta original, puede contabilizar el botón "devolver" de un teclado físico si solo agrega este código "OR": if (actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) – CircuitBreaker716