Не удается заполнить детали в EditText Of ListView в Android

Я создал приложение с пользовательским списком. Мой список содержит поле редактирования текста. Но я могу'Я не новичок в Android, поэтому мне трудно найти ошибку.

Вот мой код:

      public class MainActivity extends Activity {
         private ListView myList;
         private MyAdapter myAdapter;


        /** Called when the activity is first created. */
        @Override
           public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myList = (ListView) findViewById(R.id.MyList);
        myList.setItemsCanFocus(true);
        myAdapter = new MyAdapter();
        myList.setAdapter(myAdapter);

            }

          public class MyAdapter extends BaseAdapter {
        private LayoutInflater mInflater;

        public ArrayList myItems = new ArrayList();
        public MyAdapter() {
            mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            for (int i = 0; i < 20; i++) {
                ListItem listItem = new ListItem();
                listItem.caption = "Caption" + i;
                myItems.add(listItem);
            }
            notifyDataSetChanged();
        }

        public int getCount() {
            return myItems.size();
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {
                holder = new ViewHolder();
                convertView = mInflater.inflate(R.layout.item, null);
                holder.caption = (EditText) convertView
                        .findViewById(R.id.ItemCaption);
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
            //Fill EditText with the value you have in data source
            holder.caption.setText(myItems.get(position).caption);
            holder.caption.setId(position);

            //we need to update adapter once we finish with editing
            holder.caption.setOnFocusChangeListener(new OnFocusChangeListener() {
                public void onFocusChange(View v, boolean hasFocus) {
                    if (!hasFocus){
                        final int position = v.getId();
                        final EditText Caption = (EditText) v;
                        myItems.get(position).caption = Caption.getText().toString();
                    }
                }
              });

                return convertView;
            }
          }

         class ViewHolder {
             EditText caption;
          }

           class ListItem {
              String caption;
            }
        }

item.xml

     
       

         
         

          

activity_main.xml

Ответы на вопрос(2)

Ваш ответ на вопрос