Show keyboard automatically

后端 未结 9 2195
悲哀的现实
悲哀的现实 2020-12-08 04:36

Please explain me the issue about soft keyboard. For example, I have an EditText on my activity or dialogfragment or fragmentactivity, whatever. here it is:

         


        
相关标签:
9条回答
  • 2020-12-08 04:49

    add to onCreate or onStart();

    myView.requestFocus();
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
    
    0 讨论(0)
  • 2020-12-08 04:51

    I think it's a bug or a feature which tries to present the whole activity to you without obscuring it with the soft keyboard at first. I've searched once for information regarding that but unfortunately found nothing coming from a really reliable source.

    Anyway, to show the soft keyboard you can do this:

    EditText editText = (EditText)findViewById(R.id.edit_text_id);
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
    

    I've also seen this code that should force the soft keyboard to become visible just after activity start, but never tried it:

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

    And if you want to hide soft keyboard you can do this:

    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
    

    Hope that helps.

    Edit:

    For a DialogFragment this should work: in the onCreateView() method do this:

    @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;
    }
    
    0 讨论(0)
  • 2020-12-08 04:51

    I know this has already been answered, but I found a way to do the accepted answer in onCreateDialog instead of just in onCreateView. When you finish with the builder, before you return do the following:

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());  
    // blah blah blah do builder stuff here like setTitle, setView, etc
    
    Dialog d = builder.create();
    

    Here's the important part:

    d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
    return d;
    
    0 讨论(0)
  • 2020-12-08 04:53

    I Recommend the following link, i was followed the steps which is mentioned below link, perfectly working, it's pretty good answer, done in very simple steps. credit goes to answered person. hope it will helps the person who mess-up with keyboard popup on dialog activity.

    DialogFragment and force to show keyboard

    0 讨论(0)
  • 2020-12-08 04:59

    Open the Android Manifest file.

    Look for the activity tag like this

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

    Add the line android:windowSoftInputMode="stateVisible" as shown above

    0 讨论(0)
  • 2020-12-08 04:59

    This is what I did and it works nice...

    You can use the

    Utilities.showSoftKeyboard(...)

    anywhere across your code

    public final class Utilities {
    
      // Shows the soft keyboard. V on which view (typically EditText) to focus the keyboard input
      public static void showSoftKeyboard(Activity activity, EditText editText) 
      {
          InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
          imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
      }
    }
    
    /**
     * Called when user clicks/touches the search button
     * @param v The clicked/touched view (EditText)
     */
    protected void onSearchButtonClick(View v)
    {
        EditText seekTopic = (EditText) findViewById(R.id.SeekTopicBox);
        setActivityContent(seekTopic.getText().toString());
    }
    

    The

    onSearchButtonClick()

    method belongs to the activity, which hold the EditView which I want to edit and therefore I need the soft keyboard..

    HTH

    0 讨论(0)
提交回复
热议问题