Was ich tun möchte, ist die Standard "Done" -Etikette ändern, die in der virtuellen Tastatur angezeigt wird. Hier ist, was ich ohne Erfolg versucht haben:Android: Ich kann mir nicht vorstellen, wie setImeActionLabel zu verwenden ist
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
mSearchInput.setImeActionLabel(getString(R.string.search_action_label), EditorInfo.IME_ACTION_DONE);
I am können jedoch einen Klick auf diese Schaltfläche zu handhaben, mit diesem:
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;
}
});
Ich bin ratlos, wie Ich kann das Label auf diesem Button im Moment ändern.
Das ist neugierig. Wenn ich im Emulator auf Landscape umschalte, erscheint die Soft-Tastatur nicht mehr. Auch habe ich festgestellt, dass die Messaging-Anwendung zum Beispiel ein Smiley (":-)") anstelle der Schaltfläche "Fertig" setzt. Verwendet es ein benutzerdefiniertes Tastaturlayout oder was? Danke für den Tipp, übrigens. – Felix
Die Soft-Tastatur wird nicht angezeigt, da der Emulator eine physische Tastatur im Querformat simuliert (so wie die Soft-Tastatur nicht auf einem G1 angezeigt wird, wenn Sie sie aufklappen). Sie können die Tastatur deaktivieren, indem Sie die Datei config.ini für AVD mit 'hw.keyboard = no 'ändern. Wie für die Messaging-Anwendung, habe ich nur seine Quelle überprüft, und ich denke, der Smiley ist ein Nebenprodukt von 'inputType =" textShortMessage "' und das Fehlen einer Schaltfläche "Senden" ist wegen 'imeOptions =" flagNoEnterAction "', aber ich habe es nicht wirklich getestet. Wohlgemerkt, Touch Input scheint beide Flags zu ignorieren. – mernen
Aus dem Code in der ursprünglichen Frage können Sie eine "Return" -Schaltfläche einer physischen Tastatur berücksichtigen, wenn Sie nur diesen "ODER" -Code hinzufügen: if (actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) – CircuitBreaker716