Android-Zugriff auf Ressourcen außerhalb der Tätigkeit
Ich würde gerne wissen - gibt es Möglichkeiten, den Zugriff auf android-Ressourcen und/oder Vermögenswerte, die Dateien (oder die Dateien aus einem anderen Ordner), die außerhalb einer Tätigkeit (ohne Kontext)?
Nicht zugreifen können, ohne Kontext:
getResources().getIdentifier("resource_name", "drawable", getPackageName());
getAssets().open("file_in_assets_folder_name");
Wirft Exception, wenn der nicht in Tätigkeit:
try {
Class class = R.drawable.class;
Field field = class.getField("resource_name");
Integer i = new Integer(field.getInt(null));
} catch (Exception e) {}
Habe auch versucht, die unten, aber es beschwert sich eine Datei nicht existiert (tut etwas falsch hier?):
URL url = new URL("file:///android_asset/file_name.ext");
InputSource source = new InputSource(url.openStream());
//exception looks like so 04-10 00:40:43.382: W/System.err(5547): java.io.FileNotFoundException: /android_asset/InfoItems.xml (No such file or directory)
Kann ich nicht wirklich verstehen. Sie möchten Zugriff auf android-Ressourcen außerhalb einer Aktivität? Wo sind Sie, wenn nicht in einer Tätigkeit? Und was genau sind die android-Ressourcen? Meinst du wie die vorinstallierten icons?
sind Sie in einer erweiterten Klasse oder in einigen Bibliothek-Klasse, die Sie nicht haben Zugriff auf den Kontext?
Warum wollen Sie nicht-pass-ein Zusammenhang?
yoshi - so wie ich das verstehe, Aktivitäten für Sachen, die Benutzer mit Ihnen interagiert. Mein RSS-und XML-parsing-Klassen sind somit nicht Aktivitäten. MisterSquonk - da würd ich lieber einfach eine Konstante variable zeigt auf den Speicherort einer xml-Datei. Ich kann dies für ein remote-xml-Datei (rss-feed), warum nicht für eine, die ich mit meiner app?
sind Sie in einer erweiterten Klasse oder in einigen Bibliothek-Klasse, die Sie nicht haben Zugriff auf den Kontext?
Warum wollen Sie nicht-pass-ein Zusammenhang?
yoshi - so wie ich das verstehe, Aktivitäten für Sachen, die Benutzer mit Ihnen interagiert. Mein RSS-und XML-parsing-Klassen sind somit nicht Aktivitäten. MisterSquonk - da würd ich lieber einfach eine Konstante variable zeigt auf den Speicherort einer xml-Datei. Ich kann dies für ein remote-xml-Datei (rss-feed), warum nicht für eine, die ich mit meiner app?
InformationsquelleAutor Marc | 2012-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die Ordner im Projekt-Build Path, die Sie verwenden können, ClassLoader Zugriff auf Dateien unter der Sie außerhalb von android.Inhalt.Kontext, zum Beispiel, aus einem POJO (im Fall, wenn Sie nicht möchten, übergeben Sie einen Verweis von android.Inhalt.Kontext):
Hinzufügen Ordner in Projekt-Build Path -, rechts-klicken Sie auf Ihr Projekt-Build Path -- Configure Build Path, add Ihre Ordner (Z. B. Vermögen, wenn mit späteren SDK-version) als Quell-Ordner in den build-Pfad.
Check-out die ähnliche Frage habe ich beantwortet, bevor Sie an hier.
Was meinst du mit "Zugriff R.java Inhalt"? wenn du meinst importieren/verwenden public-Variablen erzeugt R.java. Einfach import com.Beispiel.R in du POJO-Klasse. Beachten Sie, dass R.java automatisch generiert aus app-Ressourcen und literately geändert von SDK. Ich weiß nicht, was du erreichen willst hier, aber ich sehe keinen Punkt zu verwenden R.java außerhalb von android.Inhalt.Kontext.
Durch den Zugriff meinte ich, in der Lage zu erhalten verschiedene Informationen über die Ressourcen. Zum Beispiel die int-id-Wert von " - Namen (ähnlich der 1. Zeile des Codes in Frage). Ich habe bloß nicht entgehen in Zusammenhang, wenn ich nicht zu haben.
Versuchen Sie, die Anweisung
import com.example.R
in der POJO-Klasse.Aus irgendeinem Grund (wahrscheinlich, da es generiert und hat Lust auf Methoden für den Zugriff), ich war das behandeln es in meinem Kopf, als einige geheimnisvolle Objekt, anstatt einfach nur eine Klasse, die einige public Variablen...
InformationsquelleAutor yorkw
Android-framework bei der Kompilierung Ihrer app erstellen statische Klasse aufrufen:
können Sie statisch aufrufen dieser Klasse, wie:
Vielleicht können Sie Zugriff auf dynamische Ressourcen auf diese Weise:
InformationsquelleAutor Steven Koch