Ich versuche Icepick
Bibliothek in unserer Anwendung zu verwenden, um Bündel auf Telefon Rotation zu speichern und wiederherzustellen, aber die Bibliothek Dokumentation finde ich keine guten Tipps zu speichern und Klassen, die von @Parcel
Annotation implementiert ist diese einfache Klasse, die i o der SeiteAndroid verwenden Icepick Bibliothek zum Speichern/Wiederherstellen Bundle
Example
Klasse gefunden:
@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
Klasse:
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));
}
}
Ok, jetzt wie kann ich das auf Activity
verwenden?
dies ist mein einfacher Code, ich versuche
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) {
}
}
könnte man meinen Code zu speichern und wiederherzustellen beheben? Vielen vorzurücken
Sie müssen auch 'Icepick.restoreInstanceState nennen (this, savedInstanceState)' in onCreate und 'Icepick.saveInstanceState (this, outstate)' in der onSaveInstanceState –
@SahithReddy und wie kann ich fox diese Zeile: '@State (ExampleBundler.class) String-Nachricht;' –
Wenn es nur eine Zeichenfolge ist, brauchen Sie nicht einmal den benutzerdefinierten Bundler können Sie einfach @State verwenden. Custom Bundler ist, wenn Sie ein ganzes Objekt in Verbindung mit Parcelable –