It appears that there is a bug in android where subactivities' views are not kept isolated from each other (like AppWidgetHostView does). Android generates the same set of id's across applications and I found that another subactivity in the activity group has the same id assigned to it and it's a list view. I am going to suppress saving instance state for now, as a temporary fix but I understand that won't enable me to get the default state saving functionality built into android. Should I open a bug?
On Aug 13, 10:28 am, Cheryl Sedota <[email protected]> wrote: > I subclasses TextView for this one control and logged calls to > onSaveInstanceState and onRestoreInstanceState - I never return an > AbsListView.SavedState in onSaveInstanceState but I am seeing it get > sent to my onRestoreInstanceState method: > > I/TestTextView( 1739): In onSaveInstanceState with > android.view.abssavedstat...@400bae90 > I/TestTextView( 1739): In onSaveInstanceState with > android.view.abssavedstat...@400bae90 > I/TestTextView( 1739): In onSaveInstanceState with > android.view.abssavedstat...@400bae90 > I/TestTextView( 1739): In onRestoreInstanceState with > android.view.abssavedstat...@400bae90 > I/TestTextView( 1739): In onSaveInstanceState with > android.view.abssavedstat...@400bae90 > I/TestTextView( 1739): In onRestoreInstanceState with > AbsListView.SavedState{45128f10 selectedId=-9223372036854775808 > firstId=1 viewTop=0 position=0 height=455 filter=null} > > On Aug 13, 10:15 am, Cheryl Sedota <[email protected]> wrote: > > > I have an application with an activity group, and it uses the local > > activity manager class to start a subactivity and insert that > > subactivity's view. I do not have any custom onSaveInstanceState > > logic written anywhere in my app. I have a nested layout of relative > > layout -> textview within that subactivity's view, and the text view's > > id is "recent_apps_label". I get this exception every time I rotate > > the device to/from portrait/landscape orientation on froyo ONLY, never > > saw this on eclair. > > > Please help - I have NO idea as to how the parcelable object getting > > sent to onRestoreInstanceState would be for a list view. I even > > changed the id to something even more unique and it didn't fix the > > problem. I have a different layout file for the containing layout in > > layout-land-mdpi, layout-port-mdpi, and layout-port-hdpi FYI. > > > Here is the exception: > > > E/AndroidRuntime( 1106): java.lang.IllegalArgumentException: Wrong > > state class, expecting View State but received class > > android.widget.AbsListView$SavedState instead. This usually happens > > when two views of different type have the same id in the same > > hierarchy. This view's id is id/recent_apps_label. Make sure other > > views do not use the same id. > > E/AndroidRuntime( 1106): at > > android.view.View.onRestoreInstanceState(View.java:6162) > > E/AndroidRuntime( 1106): at > > android.widget.TextView.onRestoreInstanceState(TextView.java:2422) > > E/AndroidRuntime( 1106): at > > android.view.View.dispatchRestoreInstanceState(View.java:6138) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: > > 1209) > > E/AndroidRuntime( 1106): at > > android.view.View.restoreHierarchyState(View.java:6117) > > E/AndroidRuntime( 1106): at > > com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java: > > 1530) > > E/AndroidRuntime( 1106): at > > android.app.Activity.onRestoreInstanceState(Activity.java:843) > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

