解决了...
我有一个包含一些其他控件的复合视图.我想重写保存onSaveInstanceState和onRestoreInstanceState,但我得到一个奇怪的结果.
该Parcelable state给的说法onRestoreInstanceState是不是我的自定义子类的BaseSavedState,SavedState并且似乎总是BaseSavedState.EMPTY_STATE.(在下面查找"总是失败"的代码注释...
看起来这个问题很可能出现在保存部分,因为 几乎SavedState.writeToParcel没有被调用之后onSaveInstanceState enters.几乎就好像正在调用的人onSaveInstanceState在将结果持久化之前抛弃结果Parcel.
如果它有所不同,则此视图托管在片段中.
有任何想法吗?
这是我的班级定义:
public class AddressInput extends FrameLayout
Run Code Online (Sandbox Code Playgroud)
这是我的onSaveInstanceState和onRestoreInstanceState一对:
@Override
protected Parcelable onSaveInstanceState()
{
// Return saved state
Parcelable superState = super.onSaveInstanceState();
return new AddressInput.SavedState( superState, mCurrentLookUp );
}
@Override
protected void onRestoreInstanceState( Parcelable state )
{
// **** (state == BaseSavedState.EMPTY_STATE) is also always …Run Code Online (Sandbox Code Playgroud) android state custom-view android-custom-view onrestoreinstancestate