title: Open soft keyboard for ListAdapter item with contains a view with a string
body: <p>I have a ListAdapter with in this case contains a single item.
  That item produces a view that has an EditText.</p>
  
  <p>When the view get displayed I want to open the soft keyboard to allow the user to edit the field.</p>
  
  <p>I tried to call in the getView() function of the adapter:</p>
  
  <pre><code>View edittext = view.findViewById(R.id.EditText01);
  edittext.requestFocus();
  mInputMgr.showSoftInput(edittext, InputMethodManager.SHOW_FORCED);
  </code></pre>
  
  <p>which doesn't seem to do anything.</p>
  
  <p>I also tried:</p>
  
  <pre><code>View edittext = view.findViewById(R.id.EditText01);
  edittext.requestFocus();
  mInputMgr.toggleSoftInput(0, 0);
  </code></pre>
  
  <p>That produces for some mysterious reason a loop in which the softkeyboard gets opened and closed repeatably.</p>
  
  <p>When I remove the requestFocus and touch click on the EditText in the program it pops up the softkeyboard but regardles of whether requestFocus is there showSoftInput doesn't seem to work.</p>
  
  <p>What do I have to do?</p>
  
  <p>XML of the list element:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:layout_height="fill_parent"
  
    android:focusable="true"
    android:background="@color/light_blue"
    &gt;
  
  &lt;EditText android:id="@+id/EditText01" 
  android:layout_height="wrap_content" 
  android:text="" 
  android:focusable="true"
  android:layout_width="fill_parent" android:inputType="textShortMessage"&gt;&lt;/EditText&gt;
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>XML that contains the ListView:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:layout_height="fill_parent"
    &gt;
      &lt;Button android:text="@+id/Button01" 
          android:id="@+id/Button01" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content"
          android:textAppearance="?android:attr/textAppearanceLarge"/&gt;
      &lt;ListView android:id="@+id/ListView01" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content"
          android:layout_below="@+id/Button01"
          android:gravity="center_horizontal"
          /&gt;
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>long getView function:</p>
  
  <pre><code>@Override
  public View getView(final int position, View convertView, ViewGroup parent) {
      if (convertView != null){
          return convertView;
      }
  
      if (mDialog!=null){
          final Choice thisChoice = mDialog.getChoice(
                  position, 
                  mContentRes);
          Log.v(TAG, "DialogAdapter: "+ thisChoice.toString());
  
          View view = thisChoice.getView(
                  mInflater, parent, mFillInput, mDialog);
          View.OnClickListener listener = new View.OnClickListener() {
              public void onClick(View v) {
                  if (thisChoice.choiceSingleClick(mDialog)){
                      Log.i(TAG, 
                              "Single Click selected Choice: " 
                              + thisChoice.toString());
                      Log.d(TAG, 
                              "getNextInputId: " 
                              + Integer.toString(
                                      thisChoice.getNextInputId()));
                      mFillInput.renderNext(thisChoice.getNextInputId());
                  }
                  else{
                      mFillInput.checkSelectedStatus();
                  }
              }
          };
          view.setOnClickListener(listener);
  
          View.OnLongClickListener longListener = new View.OnLongClickListener() {
              public boolean onLongClick(View v) {            
                  thisChoice.choiceLongClick(mDialog);
                  return false;
              }
          };
          view.setOnLongClickListener(longListener);
  
          Log.d(TAG, "thisChoice: " + thisChoice);
          Log.d(TAG, "selected: " + thisChoice.isSelected());
          if((position == 0 &amp;&amp; mDialog.getSelectedCount() == 0) ||
                  thisChoice.isSelected()){
              view.requestFocus();
          }
  
  
          if (thisChoice.isEnterStringChoice() &amp; position==0){
              Log.d(TAG, "Request Focus for StringChoice");
              View edittext = view.findViewById(R.id.EditText01);
              edittext.requestFocus();
              //edittext.dispatchTouchEvent(null);
              //FillInput.mInputMgr.showSoftInput(edittext, InputMethodManager.SHOW_FORCED);
              //mFillInput.mInputMgr.toggleSoftInput(0, 0);
          }
  
          return view;
      }           
      else{
          return null;
      }
  }
  </code></pre>