我有一个ArrayAdapter
充满ArrayList
。每次我点击它的任何项目时,我都会重新填写ArrayList
并发notifyOnDataSetChange()
送到adapter
. 但是由于我未知的原因,它在填充其项目ArrayList
的方法中超出了范围。getView()
我不明白为什么会这样。你们能解释一下getView()
调用理论吗,所以我明白为什么会这样。提前致谢!
这里是:
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;
}
itemsList
在外部类中声明。