SaveInstanceStateSave-Schnittstelle (Listener) in onSaveInstanceState
Für Daten wie Integer, Long, String und ist sonst in Ordnung, ich es nur im Bündel legen und es zurück, sobald die onCreateView wieder aufgerufen werden. Aber mein Fragment hat auch Zuhörer wie folgende,
public class SomeFragment extends Fragment {
public interface SomeListener {
public void onStartDoingSomething(Object whatItIsDoing, Date when);
public void onDoneDoingTheThing(Object whatItDid, boolean result);
}
private SomeFragmentListener listener;
private String[] args;
public static SomeFragment getInstance(SomeListener _listener, String... _args) {
SomeFragment sf = new SomeFragment();
sf.listener = _listener
sf.args = _args
return sf;
}
// rest of the class
// the example of where do I invoke the listener are
// - onSetVisibilityHint
// - When AsyncTask is done
// - successfully download JSON
// etc.
}
Wie kann ich den Hörer zu bündeln, so dass ich es später wiederbekommen kann?
Warum möchten Sie das tun, was ist der Grund für das Halten eines Listener-Objekts? –
Dieses Fragment wird an verschiedenen Orten nach Aktivitäten verwendet. Jede Aktivität reagiert auf diesen Rückruf anders, daher denke ich, dass es sich um ein passendes Designmuster handelt. Hast du ein anderes Muster empfohlen? –
ok, wenn es ein Listener ist, nehme ich an, es ist eine Schnittstelle und für jede Aktivität, wo Sie Listener wollen, könnten Sie Listener in dieser Klasse implementieren und Funktionen für jede Aktivität separat definieren. –