Bitte erklären Sie mir das Problem mit der Soft-Tastatur. Zum Beispiel habe ich einen EditText für meine Aktivität oder mein Dialogfragment oder meine Fragmentaktivität, was auch immer. hier ist es:
<EditText
android:id="@+id/edPswrd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" >
<requestFocus />
</EditText>
Wenn es zum ersten Mal angezeigt wird, sehe ich die Soft-Tastatur nicht und muss editText drücken, damit sie den Fokus erhält und die Tastatur erscheint. Andere Aktivitäten sind anders, wenn es auf dem Bildschirm erscheint, wird die Tastatur ohne Hilfe geladen. Ich dachte, dass
< AnfrageFokus />
bedeutet, dass EditText fokussiert wird und die Tastatur erscheint, aber ich liege falsch.
Wie soll ich verwalten, welche Komponente den Fokus und die Tastatur erhält automatisch in Erscheinung treten.

andr
Ich denke, es ist ein Fehler oder eine Funktion, die versucht, Ihnen die gesamte Aktivität zu präsentieren, ohne sie zunächst mit der Soft-Tastatur zu verdecken. Ich habe einmal nach Informationen dazu gesucht, aber leider nichts aus einer wirklich zuverlässigen Quelle gefunden.
Wie auch immer, um die Soft-Tastatur anzuzeigen, können Sie Folgendes tun:
EditText editText = (EditText)findViewById(R.id.edit_text_id);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
Ich habe auch diesen Code gesehen, der die Soft-Tastatur dazu zwingen sollte, direkt nach dem Start der Aktivität sichtbar zu werden, aber ich habe es nie versucht:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
Und wenn Sie die Soft-Tastatur ausblenden möchten, können Sie Folgendes tun:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
Ich hoffe, das hilft.
Bearbeiten:
Für ein DialogFragment
das sollte funktionieren: in der onCreateView()
Methode tun Sie dies:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_id, container);
EditText editText = (EditText)view.findViewById(R.id.edit_text_id);
// show soft keyboard
editText.requestFocus();
getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
return view;
}
Öffnen Sie die Android-Manifestdatei.
Suchen Sie wie folgt nach dem Aktivitäts-Tag
<activity
android:name="com.example.framework.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateVisible" //Add this line
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Fügen Sie die Zeile android:windowSoftInputMode=”stateVisible” wie oben gezeigt hinzu
Ich weiß, dass dies bereits beantwortet wurde, aber ich habe einen Weg gefunden, die akzeptierte Antwort einzugeben onCreateDialog
statt einfach rein onCreateView
. Wenn Sie mit dem Builder fertig sind, tun Sie Folgendes, bevor Sie zurückkehren:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// blah blah blah do builder stuff here like setTitle, setView, etc
Dialog d = builder.create();
Hier ist der wichtige Teil:
d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
return d;
zu onCreate oder onStart(); hinzufügen;
myView.requestFocus();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
Versuche dies
@Override
public void onResume() {
super.onResume();
final View v = getDialog().findViewById(R.id.edit_text_id);
v.post(new Runnable() {
@Override
public void run() {
v.requestFocus();
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) imm.showSoftInput(v, InputMethodManager.SHOW_IMPLICIT);
}
});
}

anderer großer Kerl
für mich durch Hinzufügen dieser Zeile android:windowSoftInputMode=”stateVisible” in Ihrem Manifest so
**<activity
android:name=".mmmmm.zzzzzzz.yyyyyy.xxxxxx"
android:windowSoftInputMode="stateVisible"
android:label="@string/title_activity_print_recharge"></activity>**
so habe ich es gelöst

v01d
Das hat bei mir funktioniert –
Erstellen Sie Ihre eigene EditText-Klasse und überschreiben Sie die folgende Methode –
public class FocussableEditText extends EditText {
public FocussableEditText(Context context) {
super(context);
}
public FocussableEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FocussableEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
super.onWindowFocusChanged(hasWindowFocus);
if (hasWindowFocus) {
InputMethodManager imm = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(this, InputMethodManager.SHOW_FORCED);
}
}
}
http://debuggingisfun.blogspot.in/2014/08/android-show-soft-keyboard.html
10138700cookie-checkTastatur automatisch anzeigenyes
Ich finde es besser, Fokussierbar NICHT auf TextEdit zu aktivieren.
– Fett
7. April 2016 um 17:15 Uhr
Mögliches Duplikat von How to show soft-key when edittext is focussed
– Raukodraug
20. Mai 2017 um 22:10 Uhr