Я хотел бы написать какой-нибудь помощник для сохранения и восстановления состояния активности из / в Bundle
Переопределение методов onCreate(Bundle savedState)
и onSaveInstanceState(Bundle outState)
все еще необходимо, но простая форма сохранения / восстановления - это своего родаскучно
Примерно так:
class StateHelper {
static void restore(Bundle bundle, String[] properties, Object[] connections){
for(int i = 0; i < properties.length; i++){
if(bundle.containsKey(properties[i])){
restoreState(properties[i], connections[i]);
}
}
}
static void save(Bundle bundle, String[] properties, Object[] connections){
for(int i = 0; i < properties.length; i++){
saveState(properties[i], connections[i]);
}
}
restoreState(String s, Object o){
if(o instanceof EditText){
// restore state with getString
} else if(o instanceof Checkbox){
// save state with getBoolean
}
// etc. etc. handle all UI types
}
saveState(String s, Object o){
// similar to restoreState(String, Object)
// only saving instead of restoring
}
}
и использовать вот так:
String[] props = {LOGIN,PASSWORD,REALNAME};
Object[] cons = {textedit_login, textedit_password, textedit_realname};
StateHelper.restore(savedState, props, cons);
// or
StateHelper.save(outBundle, props, cons);
И прежде чем я потрачу целый день на создание этого, мой вопрос:Есть ли подобный вспомогательный класс или родной способ, как сделать это простые действия сохранения / восстановления?