0
我想在android listview上設置footerview。該列表視圖使用了一個自定義適配器,我在其中顯示了兩種類型的行,這兩種行都符合java接口。設置頁腳的代碼如下所示:ClassCastException ListView頁腳
eventsList = (ListView)view.findViewById(R.id.events_list);
// create view for footer
LL = new LinearLayout(getSherlockActivity());
LL.setOrientation(LinearLayout.VERTICAL);
LayoutParams LLParams = new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
LL.setLayoutParams(LLParams);
eventsList.addFooterView(LL, null, false);
// set up the array list for list rows and headers
items = new ArrayList<ListItem>();
loadEventsData();
eventsAdapter = new TwoTypeArrayAdapter(getSherlockActivity(), items);
eventsList.setAdapter(eventsAdapter);
我不斷收到一個「java.lang.ClassCastException:android.app.ActionBar &的LayoutParams不能轉換到android.widget.AbsListView $的LayoutParams」。引發該錯誤在該行:
eventsList.setAdapter(eventsAdapter);
一個ArrayAdapter定義如下:
public class TwoTypeArrayAdapter extends ArrayAdapter<ListItem> {
LayoutInflater mInflater;
public enum RowType {
LIST_ITEM,
HEADER_ITEM
}
public TwoTypeArrayAdapter(Context context, List<ListItem> items) {
super(context, 0, items);
mInflater = LayoutInflater.from(context);
}
@Override
public int getViewTypeCount() {
return RowType.values().length;
}
@Override
public int getItemViewType(int position) {
return getItem(position).getViewType();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getItem(position).getView(mInflater, convertView);
}
}
在此先感謝您的幫助。
可以顯示TwoTypeArrayAdapter的定義 –
謝謝。我已經添加了上面的適配器定義。 – Jack120