我理解Enum是Serializable.因此,这样做是安全的.(selectedCountry是enum Country)
public enum Country {
Australia,
Austria,
UnitedState;
}
Run Code Online (Sandbox Code Playgroud)
@Override
public void onActivityCreated (Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
selectedCountry = (Country)savedInstanceState.getSerializable(SELECTED_COUNTRY_KEY);
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putSerializable(SELECTED_COUNTRY_KEY, selectedCountry);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在自定义枚举类中有非可序列化成员,该怎么办?例如,
package org.yccheok;
import org.yccheok.R;
/**
*
* @author yccheok
*/
public enum Country {
Australia(R.drawable.flag_au),
Austria(R.drawable.flag_at),
UnitedState(R.drawable.flag_us);
Country(int icon) {
this.icon = icon;
nonSerializableClass = new NonSerializableClass(this.toString());
}
public int getIcon() {
return icon;
} …Run Code Online (Sandbox Code Playgroud)