Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android : show keyboard in edittext

Tags:

android

Am stuck with a pretty simple issue in the Android App am coding. I have a list of EditText objects, one in each row.

When the user long presses the EditText, I need to show the keyboard. When the user does a long press, then I call this method :

private void setNameAsEditable(View rowView, boolean setToEditable) {

    EditText textView = (EditText) rowView
        .findViewById(R.id.edittext_name);
    textView.setFocusableInTouchMode(setToEditable);
    textView.setFocusable(setToEditable);
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(textView, InputMethodManager.SHOW_IMPLICIT);
}

The edittext becomes editable (the underline and the cursor appears, as you can see below)

enter image description here

but the keyboard does not come up.

I tried various solutions from stackoverflow (like this), but in vain.

I even tried

this.getWindow().setSoftInputMode ( WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

I want the soft-keyboard to come up as soon as the user long-presses the EditText. Can someone please help?

like image 616
user2903200 Avatar asked Mar 22 '23 05:03

user2903200


1 Answers

Try it, for me it works fine.

 et =(EditText) findViewById(R.id.edittext_name);
      imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
      imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
      et.setText("hide key board");
      et.setFocusable(false);
     et.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            // TODO Auto-generated method stub
            et.setFocusableInTouchMode(true);
            imm.showSoftInput(et, 0);
            et.setText("show key board long pressed");
            return false;
        }
    });
like image 157
Amit Avatar answered Apr 02 '23 14:04

Amit