diff --git a/core/java/android/widget/HeaderViewListAdapter.java b/core/java/android/widget/HeaderViewListAdapter.java index b0e5f7eb8ee13..981996a30b5f7 100644 --- a/core/java/android/widget/HeaderViewListAdapter.java +++ b/core/java/android/widget/HeaderViewListAdapter.java @@ -34,6 +34,8 @@ public class HeaderViewListAdapter implements WrapperListAdapter, Filterable { private ListAdapter mAdapter; + // These two ArrayList are assumed to NOT be null. + // They are indeed created when declared in ListView and then shared. ArrayList mHeaderViewInfos; ArrayList mFooterViewInfos; boolean mAreAllFixedViewsSelectable; @@ -55,11 +57,11 @@ public class HeaderViewListAdapter implements WrapperListAdapter, Filterable { } public int getHeadersCount() { - return mHeaderViewInfos == null ? 0 : mHeaderViewInfos.size(); + return mHeaderViewInfos.size(); } public int getFootersCount() { - return mFooterViewInfos == null ? 0 : mFooterViewInfos.size(); + return mFooterViewInfos.size(); } public boolean isEmpty() { @@ -132,12 +134,12 @@ public class HeaderViewListAdapter implements WrapperListAdapter, Filterable { if (mAdapter != null && position >= numHeaders) { int adjPosition = position - numHeaders; int adapterCount = mAdapter.getCount(); - if (adjPosition >= adapterCount && mFooterViewInfos != null) { + if (adjPosition >= adapterCount) { return mFooterViewInfos.get(adjPosition - adapterCount).isSelectable; } else { return mAdapter.isEnabled(adjPosition); } - } else if (position < numHeaders && mHeaderViewInfos != null) { + } else if (position < numHeaders) { return mHeaderViewInfos.get(position).isSelectable; } return true; @@ -148,12 +150,12 @@ public class HeaderViewListAdapter implements WrapperListAdapter, Filterable { if (mAdapter != null && position >= numHeaders) { int adjPosition = position - numHeaders; int adapterCount = mAdapter.getCount(); - if (adjPosition >= adapterCount && mFooterViewInfos != null) { + if (adjPosition >= adapterCount) { return mFooterViewInfos.get(adjPosition - adapterCount).data; } else { return mAdapter.getItem(adjPosition); } - } else if (position < numHeaders && mHeaderViewInfos != null) { + } else if (position < numHeaders) { return mHeaderViewInfos.get(position).data; } return null; @@ -184,9 +186,7 @@ public class HeaderViewListAdapter implements WrapperListAdapter, Filterable { int adjPosition = position - numHeaders; int adapterCount = mAdapter.getCount(); if (adjPosition >= adapterCount) { - if (mFooterViewInfos != null) { - return mFooterViewInfos.get(adjPosition - adapterCount).view; - } + return mFooterViewInfos.get(adjPosition - adapterCount).view; } else { return mAdapter.getView(adjPosition, convertView, parent); } diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index 7f77fa9b75009..88f2e123096cf 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -246,7 +246,7 @@ public class ListView extends AbsListView { * added. Views added using this call can take focus if they want. *

* NOTE: Call this before calling setAdapter. This is so ListView can wrap - * the supplied cursor with one that that will also account for header + * the supplied cursor with one that will also account for header and footer * views. * * @param v The view to add. @@ -273,7 +273,7 @@ public class ListView extends AbsListView { * added. Views added using this call can take focus if they want. *

* NOTE: Call this before calling setAdapter. This is so ListView can wrap - * the supplied cursor with one that that will also account for header + * the supplied cursor with one that will also account for header and footer * views. * * @param v The view to add. @@ -324,7 +324,7 @@ public class ListView extends AbsListView { * added. Views added using this call can take focus if they want. *

* NOTE: Call this before calling setAdapter. This is so ListView can wrap - * the supplied cursor with one that that will also account for header + * the supplied cursor with one that will also account for header and footer * views. * * @param v The view to add. @@ -350,7 +350,7 @@ public class ListView extends AbsListView { * than once, the views will appear in the order they were added. Views added using * this call can take focus if they want. *

NOTE: Call this before calling setAdapter. This is so ListView can wrap the supplied - * cursor with one that that will also account for header views. + * cursor with one that will also account for header and footer views. * * * @param v The view to add.