Merge change I237c1cee into eclair-mr2

* changes:
  Improve exception message thrown when a View's state is of the wrong type.
This commit is contained in:
Android (Google) Code Review
2009-12-08 11:32:50 -08:00
2 changed files with 6 additions and 2 deletions

View File

@@ -5961,7 +5961,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
protected void onRestoreInstanceState(Parcelable state) {
mPrivateFlags |= SAVE_STATE_CALLED;
if (state != BaseSavedState.EMPTY_STATE && state != null) {
throw new IllegalArgumentException("Wrong state class -- expecting View State");
throw new IllegalArgumentException("Wrong state class, expecting View State but "
+ "received " + state.getClass().toString() + " instead. This usually happens "
+ "when two views of different type have the same id in the same hierarchy. "
+ "This view's id is " + ViewDebug.resolveId(mContext, getId()) + ". Make sure "
+ "other views do not use the same id.");
}
}

View File

@@ -1300,7 +1300,7 @@ public class ViewDebug {
}
}
private static Object resolveId(Context context, int id) {
static Object resolveId(Context context, int id) {
Object fieldValue;
final Resources resources = context.getResources();
if (id >= 0) {