简体   繁体   中英

Android : Soft keyboard is not showing

I am creating a Fragment inside an Activity .I have an EditText in the MainActivity layout and the Fragment layout comes under that EditText .My issue is when I click the EditText the soft keyboard is not showing.

In EditText layout I create

 <EditText
                android:id="@+id/edt_searchContact"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:textCursorDrawable="@drawable/color_cursor"
                android:background="@drawable/edit_text_line_contacts"
                android:focusable="true"
                android:clickable="true"
                android:hint="Search..."/>
 <requestFocus/>

for showing the soft keyboard the code that I given in the Fragment

 InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.showSoftInput(edt_searchContact, InputMethodManager.SHOW_IMPLICIT);

In Manifest

android:windowSoftInputMode="adjustPan"

I have 3 Fragment in one Activity ,when one Fragment comes that EditText is going to Visible in main Activity layout.

Can anyone please help me Thanks in advance :)

Try this in your activity

editText = (EditText)findViewById(R.id.txt_yourName);

            // Request focus and show soft keyboard automatically
            editText.requestFocus();
            getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);

Try this one :

editText.setOnFocusChangeListener(new OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                editText.post(new Runnable() {
                    @Override
                    public void run() {
                        InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.showSoftInput(edt_searchContact, InputMethodManager.SHOW_IMPLICIT);
                    }
                });
            }
        });
        editText.requestFocus();

On your Activity's onResume() Method you can write this:

EditText et = (EditText) findViewById(R.id.et);
et.requestFocus(); 
InputMethodManager mngr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mngr.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);

The below method worked for me-

InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM