Ich habe Klasse implementiert, die Serializable implementiert, weil ich es zwischen den Aktivitäten weitergeben müssen:getString von Klasse, die Serializable
Day tempDay = new Day();
Intent i = new Intent(this, DayCreator.class);
i.putExtra("DayClass", tempDay);
startActivity(i);
Aber in Day-Klasse muss ich als so eine Schnur lesen:
context.getString(R.string.sick_list);
Wenn ich zu dieser Klasse Kontext als so über Konstruktor übergeben:
Day tempDay = new Day(context);
ich erhalte eine Fehlermeldung, wenn DayCr Start eator activity:
Parcelable encountered IOException writing serializable object
Dies macht Sinn, weil der Kontext nicht serialisierbar ist.
So ... Wie kann ich Strings aus Klasse, die Serializable implementiert?
„Aber in Day-Klasse sein sollte, muss ich lesen eine Zeichenfolge als so "- IMHO, sollte' DayCreator' diese Zeichenfolge lesen (oder möglicherweise jede Aktivität, die 'DayCreator' startet). "Day" sollte als eine Art Modellobjekt behandelt werden, das nichts mit String-Ressourcen zu tun hat. – CommonsWare
Es ist sehr gefährlich, 'Kontext'-Verweis auf Objekte zu halten. Es ist ein besserer Ansatz, die Methoden, die einen Kontext benötigen, als Parameter zu verwenden, zu verwenden und ohne Speichern eines Verweises darauf zurückzugeben. –
In der Day-Klasse habe ich eine Funktion, die je nach inneren Berechnungen unterschiedliche Strings zurückgibt, diese Strings befinden sich in xml Datei. Es gibt nichts mit DayCreator zu tun – Dim