listview是常见的Android列表控件,为了看起来美观,无论是个人还是第三方都会给listview加个刷新头和加载的footer,但是有时候加的位置不正确会导致数组越界异常,
常见的原因,可能是在添加适配器之前给listview设置的刷新头导致数组越界,把listview的添加header或者footer的时候要在适配器添加完成后添加
eg:
原来是这样(注掉部分为后期注掉的,原本是么有注掉,导致数组越界异常,所以就当没有注掉吧)
正确的添加方式是这样,先添加完适配器后再给listview加头和footer
adapter = new OrderManagerListAdapter(getActivity(), orderListHeaders, OrderListContents);
((PinnedHeaderListView) listViews.get(0).findViewById(
R.id.lvPinnedHeaderListView)).setAdapter(adapter);
if (((PinnedHeaderListView) listViews.get(0).findViewById(
R.id.lvPinnedHeaderListView)).getFooterViewsCount() == 0) {
((PinnedHeaderListView) listViews.get(0).findViewById(
R.id.lvPinnedHeaderListView)).addFooterView(footOrderListView, null, false);
}
(PinnedHeaderListView是第三方控件,完全可以当作listview)