Я пытаюсь использовать библиотеку Icepick
в нашем приложении для сохранения и восстановления пакета на телефоне, но документация библиотеки я не могу найти хорошие советы для сохранения и классы, которые реализованы в @Parcel
аннотация это просто класс, который я нашел о страницеAndroid использовать библиотеку Icepick для сохранения/восстановления пакета
Example
класс:
@Parcel
public class Example {
String name;
int age;
public Example(){ /*Required empty bean constructor*/ }
public Example(int age, String name) {
this.age = age;
this.name = name;
}
public String getName() { return name; }
public int getAge() { return age; }
public String setName(String name) { this.name = name; }
public int setAge(int age) { this.age = age; }
}
ExampleBundler
класс:
public class ExampleBundler implements Bundler<Object> {
@Override
public void put(String s, Object example, Bundle bundle) {
bundle.putParcelable(s, Parcels.wrap(example));
}
@Override
public Object get(String s, Bundle bundle) {
return Parcels.unwrap(bundle.getParcelable(s));
}
}
Хорошо, теперь как я могу использовать это на Activity
?
это мой простой код, который я пытаюсь сохранить и восстановить
public class MainActivity extends BaseActivity {
/* @State(ExampleBundler.class) String message; */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Example example = new Example();
example.setName = "HELLO WORLD";
example.setAge = 99;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
public void onRestoreInstanceState(Bundle inState) {
}
}
могли бы вы исправить мой код? Спасибо заранее
Вы также должны вызвать 'Icepick.restoreInstanceState (это, savedInstanceState)' в OnCreate и 'Icepick.saveInstanceState (это, outstate)' в onSaveInstanceState –
@SahithReddy и как я могу использовать эту строку: '@State (ExampleBundler.class) String message;' –
Если это просто строка, вам даже не нужен пользовательский связующий, вы можете просто использовать @State. custom bundler - это если вы хотите сохранить целый объект в сочетании с parcelable –