Gibt es eine Möglichkeit, die getString-Methode aus einer separaten Klasse zu verwenden?
Ich habe eine Zeichenkette in meiner Zeichenkette xml gespeichert, ich möchte diese Zeichenkette in einem Objekt verwenden ... aber die Methode ist nicht einmal im Objekt verfügbar ...
irgendwelche Tipps?
getString()
ist eine Methode der Context
-Klasse¹. Wenn Sie es in einer separaten Klasse benötigen (die Context
nicht erweitert), ist es normalerweise am besten, es als separates Argument für die Methode anzugeben, die es benötigt.
Beispiel:
%Vor% Eines ist wichtig: Nie speichert den Kontext in der separaten Klasse.
Geben Sie ein Argument an. Andernfalls verlieren Sie Speicher und unterbrechen den gesamten Android-Lebenszyklus, wenn das Objekt, das den Kontext speichert, länger lebt als das Objekt, zu dem der Kontext ursprünglich gehört (z. B. eine Aktivität).
¹ getString()
kann auch aus dem Resources
Klasse - die Sie über Context.getResources()
bearbeiten: Das Folgende wird NICHT funktionieren. Ich habe das auf einer anderen Website gelesen und angenommen, dass es funktioniert hat, aber ich habe es gerade in meiner App versucht und immer einen Fehler erhalten. Problem ist, es wird kompiliert, aber Sie erhalten eine Laufzeitausnahme.
Dies funktioniert von jeder Java-Klasse:
%Vor%Wenn Sie keinen Kontext als Parameter übergeben können, erstellen Sie eine andere Klasse, in die Sie alle Ihre statischen Daten einfügen.
Beispiel:
%Vor%und rufen Sie diese Zeichenfolge von Ihrer anderen Klasse ab, indem Sie direkt aufrufen StaticData.BASE_URL
nett und sauber.
Tags und Links class android object android-context