Softtastatur beim Drücken der Eingabetaste ausblenden
Ich habe ein halbes Dutzend anderer Antworten auf SO gesucht, aber keine gefunden, die funktioniert. Ich versuche nur, die Soft-Tastatur zu schließen, wenn der Benutzer die Eingabetaste drückt. (Das Äquivalent zum wahnsinnig einfachen iOS-Aufruf "resignKeyboard".) Im folgenden Code wird die onEditorAction-Methode nicht aufgerufen. Ich habe eine EditText-Ansicht in meiner XML-Datei eingerichtet und der Code in meinem Fragment lautet wie folgt:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
fragView = inflater.inflate(R.layout.fragment_encrypt2, container, false);
textField = (EditText) fragView.findViewById(R.id.textField);
textField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView arg0, int actionId,
KeyEvent arg2) {
// hide the keyboard and search the web when the enter key
// button is pressed
if (actionId == EditorInfo.IME_ACTION_GO
|| actionId == EditorInfo.IME_ACTION_DONE
|| actionId == EditorInfo.IME_ACTION_NEXT
|| actionId == EditorInfo.IME_ACTION_SEND
|| actionId == EditorInfo.IME_ACTION_SEARCH
|| (arg2.getAction() == KeyEvent.KEYCODE_ENTER)) {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(textField.getWindowToken(), 0);
return true;
}
return false;
}
});
// Inflate the layout for this fragment
return fragView;//inflater.inflate(R.layout.fragment_encrypt2, container, false);
}
Das Folgende ist ein Ausschnitt aus der XML-Datei, in der ich das EditText-Feld definiere. Ich brauche EditText, um mehrzeilig zu sein.
<EditText
android:id="@+id/textField"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="@string/Encrypted_Text_Hint"
android:gravity="top"
android:inputType="textMultiLine"
android:imeOptions="actionDone"/>