Skip to content

Commit 7daaa98

Browse files
Dianne HackbornAndroid (Google) Code Review
authored andcommitted
Merge "Fix issue #3149290: java.lang.RuntimeException: Unable to pause activity" into gingerbread
2 parents 5207825 + 99441c4 commit 7daaa98

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

core/java/android/widget/AbsListView.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ public Parcelable onSaveInstanceState() {
963963

964964
SavedState ss = new SavedState(superState);
965965

966-
boolean haveChildren = getChildCount() > 0;
966+
boolean haveChildren = getChildCount() > 0 && mItemCount > 0;
967967
long selectedId = getSelectedItemId();
968968
ss.selectedId = selectedId;
969969
ss.height = getHeight();
@@ -978,8 +978,12 @@ public Parcelable onSaveInstanceState() {
978978
// Remember the position of the first child
979979
View v = getChildAt(0);
980980
ss.viewTop = v.getTop();
981-
ss.position = mFirstPosition;
982-
ss.firstId = mAdapter.getItemId(mFirstPosition);
981+
int firstPos = mFirstPosition;
982+
if (firstPos >= mItemCount) {
983+
firstPos = mItemCount - 1;
984+
}
985+
ss.position = firstPos;
986+
ss.firstId = mAdapter.getItemId(firstPos);
983987
} else {
984988
ss.viewTop = 0;
985989
ss.firstId = INVALID_POSITION;

0 commit comments

Comments
 (0)