ArrayAdapter goes beyond bounds
===

I have an `ArrayAdapter` with `ArrayList` filled. Each time I click on any of its item I re-fill the `ArrayList` and send `notifyOnDataSetChange()` to the `adapter`. But for unknown for me reason it goes out of `ArrayList` bounds in it's `getView()` method where it populates its items. I don't understand why this happens. Can you guys explain the theory of `getView()` invokation so I understand why this going on. Thanks in advance!


Here it is:

    class MAdapter extends ArrayAdapter<String> {
        public MAdapter(Context context, int textViewResourceId, List<String> objects) {
            super(context, textViewResourceId, objects);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.file_explorer_row, null);
        } else {
            
        }

            String txt = itemsList.get(position); // Out of bounds happens here
            if (!txt.equals("")) {
                TextView tt = (TextView) v.findViewById(R.id.file_explorer_tv_filename);
                tt.setText(txt);
            }

        return v;
    }