at java.util.ArrayList.get(ArrayList.java:310)
at com.android.photos.views.GridViewWithHeaderAndFooter$HeaderViewGridAdapter.getView(GridViewWithHeaderAndFooter.java:702)
at com.android.photos.views.GridViewWithHeaderAndFooter.getRowHeight(GridViewWithHeaderAndFooter.java:381)
at com.android.photos.views.GridViewWithHeaderAndFooter.setAdapter(GridViewWithHeaderAndFooter.java:426)
at com.shop.ShopHome$19.postTask(ShopHome.java:1394)
at android.app.ActivityThread.main(ActivityThread.java:5335)
에러나는 부분 // 표시
cartList = GridViewWithHeaderAndFooter
homeCartAdapter = new HomeCartAdapter(ShopHome.this , R.id.cartList , sumCartList);
cartHolder.cartList.setAdapter(homeCartAdapter); // error
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (DEBUG) {
Log.d(LOG_TAG, String.format("getView: %s, reused: %s", position, convertView == null));
}
// Header (negative positions will throw an ArrayIndexOutOfBoundsException)
int numHeadersAndPlaceholders = getHeadersCount() * mNumColumns;
if (position < numHeadersAndPlaceholders) {
View headerViewContainer = mHeaderViewInfos.get(position / mNumColumns).viewContainer;
if (position % mNumColumns == 0) { // error-------------
return headerViewContainer;
} else {
if (convertView == null) {
convertView = new View(parent.getContext());
}
// We need to do this because GridView uses the height of the last item
// in a row to determine the height for the entire row.
convertView.setVisibility(View.INVISIBLE);
convertView.setMinimumHeight(headerViewContainer.getHeight());
return convertView;
}
}
public int getRowHeight() {
if (mRowHeight > 0) {
return mRowHeight;
}
ListAdapter adapter = getAdapter();
int numColumns = getNumColumnsCompatible();
// adapter has not been set or has no views in it;
if (adapter == null || adapter.getCount() <= numColumns * (mHeaderViewInfos.size() + mFooterViewInfos.size())) {
return -1;
}
int mColumnWidth = getColumnWidthCompatible();
View view = getAdapter().getView(numColumns * mHeaderViewInfos.size(), mViewForMeasureRowHeight, this); // error ----------------
AbsListView.LayoutParams p = (AbsListView.LayoutParams) view.getLayoutParams();
if (p == null) {
p = new AbsListView.LayoutParams(-1, -2, 0);
view.setLayoutParams(p);
}
int childHeightSpec = getChildMeasureSpec(
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 0, p.height);
@Override
public void setAdapter(ListAdapter adapter) {
mOriginalAdapter = adapter;
if (mHeaderViewInfos.size() > 0 || mFooterViewInfos.size() > 0) {
HeaderViewGridAdapter headerViewGridAdapter = new HeaderViewGridAdapter(mHeaderViewInfos, mFooterViewInfos, adapter);
int numColumns = getNumColumnsCompatible();
if (numColumns > 1) {
headerViewGridAdapter.setNumColumns(numColumns);
}
headerViewGridAdapter.setRowHeight(getRowHeight()); // error ------
super.setAdapter(headerViewGridAdapter);
} else {
super.setAdapter(adapter);
}
}
int childWidthSpec = getChildMeasureSpec(
MeasureSpec.makeMeasureSpec(mColumnWidth, MeasureSpec.EXACTLY), 0, p.width);
view.measure(childWidthSpec, childHeightSpec);
mViewForMeasureRowHeight = view;
mRowHeight = view.getMeasuredHeight();
return mRowHeight;
}