Android EditText in ListView - keyboard

20,088

If this is still an issue, take a look at this item: Focusable EditText inside ListView

This changes may help.

Change to listview:

<ListView
    android:id="@android:id/list" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"
    android:descendantFocusability="beforeDescendants"
    />

Change to activity in mainfest.xml:

<activity android:name= ".yourActivity" android:windowSoftInputMode="adjustPan"/>
Share:
20,088
Javatar
Author by

Javatar

Updated on July 09, 2022

Comments

  • Javatar
    Javatar almost 2 years

    I've got a problem with my EditText. I use the following adapter:

    public class RowTextViewAdapter extends BaseAdapter {
    
    ...
    
      public View getView(int position, View convertView, ViewGroup parent) {
    
      ViewHolder holder = null;
    
        if (rowTitles.get(position).equals("edit")) {
            if(et == null){
                et = new EditText(activity);
                et.setText("Test");
            }
            return et;
        }
        else {
            convertView = new TextRow(activity);
            holder = new ViewHolder(((TextRow) convertView).getTextView(), ((TextRow) convertView).getImageView());
            convertView.setTag(holder);
            holder.getTextView().setText(StringManager.getInstance().getText(rowTitles.get(position), activity));
            holder.getImageView().setImageBitmap(assetController.getBitmap(additiveIcons.get(position) + ".png", null));
            return convertView;
        }
      }
    }
    

    and ListActivity:

    public class AppSettingActivity extends ListActivity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            adapter = new RowTextViewAdapter(this);
            adapter.addRowView("account", "arrowDw");
            adapter.addRowView("password", "arrowDw");
            setListAdapter(adapter);
       }
    
    ...
    
       protected void onListItemClick(ListView listView, View view, int position, long id) {
        switch (position) {
            case 0: accIsEditable = adapter.setEditable(position); break;
            case 1: 
                if(accIsEditable) {
                                        //TODO do something..
                    break;
                }
                pwIsEditable = adapter.setEditable(position);
                break;
              ...
       }
    }
    

    If i click on the first item I add a new list item on pos. 1 (pos: 0, 1, 2, ...). Now the EditText field is added to the list.

    ListView:
    ----------------------------          -------------------------    
    Account                   v           Account                ^     
    ----------------------------    ==>   -------------------------     
    Passowrd                  v           [::::::::EditText:::::::]      
    ----------------------------          -------------------------
    //more..                              Password               v
    ----------------------------          -------------------------
                                          //more..
                                          -------------------------
    

    If I click now into the EditText field, it shows the virtual keyboard and loses focus of the EditText. I click again and it gains focus. But if I write something, the text is only showed in the EditText field, if i tap on it and not frequently while i'm writing...

    Any idea to fix that update problem?