Tastatur automatisch anzeigen

Lesezeit: 5 Minuten

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.

  • 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

Benutzer-Avatar
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;
}

  • Ich habe es versucht, aber keine der Methoden hier funktioniert nicht mit meinem Dialogfragment. Ich tat dies: InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(edPswrd, InputMethodManager.SHOW_IMPLICIT); Und es geht nicht 🙁

    – Fönix

    7. Februar 2013 um 19:58 Uhr

  • Danke. Ich habe android.view.ViewGroup.LayoutParams importiert, aber es gibt immer noch einen Fehler SOFT_INPUT_STATE_VISIBLE kann nicht aufgelöst werden oder ist kein Feld

    – Fönix

    7. Februar 2013 um 20:23 Uhr


  • Ich habe das auch gemacht: getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); wie in den Ratschlägen unten, aber die Tastatur wird immer noch nicht angezeigt

    – Fönix

    7. Februar 2013 um 20:24 Uhr


  • Außerdem habe ich gerade versucht, Sie bei anderen Aktivitäten “Tastatur auszublenden”, schrieb dies InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow (editText.getWindowToken(), 0); in onCreate() aber Tastatur erscheint 🙁

    – Fönix

    7. Februar 2013 um 20:39 Uhr

  • Ich habe es auch in onCreateDialog zum Laufen gebracht. Siehe meine Antwort

    – MidasLefko

    28. April 2015 um 15:36 Uhr

Ö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

  • ok, danke, es hat für die Aktivität funktioniert, und es war nicht für Dialoge geeignet.

    – Fönix

    7. Februar 2013 um 19:49 Uhr

  • Was ist mit Viewpager?!

    – sepehr

    31. Juli 2016 um 18:28 Uhr

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;

  • Ich musste SOFT_INPUT_STATE_ALWAYS_VISIBLE verwenden, um die Tastatur anzuzeigen (Nexus 5). Wie auch immer, danke für die Lösung in der Methode onCreateView().

    – JerabekJakub

    5. Januar 2017 um 16:59 Uhr

  • Wie schließen Sie die Tastatur, wenn Sie diese Methode zum Anzeigen der Tastatur verwenden?

    – Fahrgestellnummer

    18. Januar 2017 um 18:19 Uhr

  • dasselbe wie immer. Überprüfen Sie dies und das

    – MidasLefko

    18. Januar 2017 um 18:42 Uhr


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);
      }
   });
 }

Benutzer-Avatar
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

Benutzer-Avatar
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

1013870cookie-checkTastatur automatisch anzeigen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy