Irgendwo in der Anwendung muss ich eine lokalisierte Zeichenfolge mit der Methode getString für eine Fehlermeldung abrufen. Dazu benötige ich eine Context-Instanz, beispielsweise aus einer Aktivität. Ist das wirklich so gestaltet? Bin ich wirklich gezwungen, diese Objekte in Klassen und Methoden umzuleiten oder fehle ich den Punkt und gibt es eine andere Möglichkeit, eine String-Referenz zu bekommen?Muss ich Kontextinstanzen wirklich tief in die Anwendung hineinreichen?
Um zu klären, in einer Aktivität habe ich eine innere AsyncTask-Unterklasse, die in DoInBackground eine neue Klasse für einige kurze Netzwerkverarbeitung außerhalb der UI-Thread instanziiert. Ich möchte, dass Fehlermeldungen lokalisiert werden und dafür muss ich eine Context-Instanz (mit anderen Worten die Aktivität) in diese Klasse einbinden. Das Design, Ressourcen aus den XML-Dateien zu beziehen, scheint nur ein bisschen unintuitiv zu sein. Ich frage mich, warum dies so eng mit Context-Instanzen verbunden ist und nicht etwas statisches oder - verzeih mir - ein Singleton, da Context impliziert, der globale Anwendungskontext zu sein und nicht nur ein Teil davon wie eine Aktivität.
Passiert das in einer Utility-Klasse oder so? Sie brauchen einen Kontext für 'getString()', also lautet die kurze Antwort ja. Wenn Sie weitere Details darüber angeben, wo/wie Sie dies aufrufen müssen, gibt es möglicherweise einen besseren Weg als einen Methodenparameter zu übergeben/zu halten. –