안녕하세요, 모두들 좋은 하루 되세요 ^^
public class IconTextListAdapter extends BaseAdapter {
private Context mContext;
private List<IconTextItem> mItems = new ArrayList<IconTextItem>();
public IconTextListAdapter(Context context) {
mContext = context;
}
위 소스는 BaseAdapter를 상속받아 재정의한 소스 일부분이구요..
아래 소스는 ListView를 상속받아 재정의한 소스일부분입니다.
문제는 밑에 public void setAdapter(BaseAdapter adapter) 이부분인데요..
메인클래스에서 위의 IconTextListAdapter 아답터 객체를 생성해서 아래의 setAdapter를 수행하는데
여기까지는 정상적으로 동작이 됩니다. 그런데..
아래 리스트뷰에서 addHeaderView 를 수행하여 헤더를 붙이면 setAdapter에서 문제가 발생하는거 같습니다.
즉 BaseAdapter이 HeaderViewListAdapter로 변경이 되어 cast 에러가 납니다.. 이렇게 질문을 하면서도 헷갈리네요..
도움 부탁드려보아요.. >.<
public class DataListView extends ListView {
private IconTextListAdapter adapter;
public DataListView(Context context) {
super(context);
init();
}
public DataListView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public void setAdapter(BaseAdapter adapter) {
super.setAdapter(adapter);
}
public void addHeaderView (View v) {
super.addHeaderView(v);
}
혹시 addHeaderView() 메서드보다 setAdapter() 메서드를 먼저 호출하셨나요?
기본적으로
addHeaderView() 메서드를 먼저 호출하신후에
setAdapter() 를 사용하셔야 합니다.
그게 아니라면 저도 당장은 왜 그런지 잘모르겠에요 ~_~;