xml-datei aus anderer klasse laden

  • hallo,
    ich habe viele xml-dateien mit meinen daten, um sie nicht immer wieder in der activity abfragen zu müssen wollte ich sie aus einer eigenen klasse lesen...

    anstelle von wie immer:
    String[] werte = getResources().getStringArray(R.array.routen_Kalymnos);


    wollte ich nun so darauf zugreifen:
    getZone get = new getZone();
    String[] werte = get.getZone("Kalymnos");es funktioniert nicht


    dank euch
    Tino

  • Hallo so wie du das machst geht das nicht.


    Die Klasse braucht nicht von Activity zu erben. Das bringt dir auch nichts.
    Das was du da erbst ist auch die falsche Instanz.


    Du musst den Kontext der Actiyity an die Klasse übergeben.
    Über diesen Kontext kannst du in der Klasse auf Objekte der Activity zu greifen.
    Übergebe den Kontext im Konstruktor an die Klasse.


    Erben brauch die Klasse nicht.


    Grundlagen OOP . Auslagern in externe Klassen.

  • hallo,


    das "extends Activity" habe ich nur gemacht, da sonst das "(R.array.routen_Kalymnos)" nicht gefunden wurde.


    ich möchte doch nur hier einen String reingeben, in dem fall "Kalymnos" und somit auf die richtige xml zugreifen zu können.



    wenn ich die ca. 20 abfragen direkt in die activity schreibe geht es ja gut, ich habe aber 5 activities und müsste alle immer erweitern wenn neue xml dazukommen, deswegen wollte ich sie so auslagern.



    in java-eclipse projekten mache ich das auch so und es geht immer.


    ich versteh nicht was du mit kontext meinst.



    danke tino

  • Der Kontext ist zb das tihs der activity. Das du in der Klasse brauchst um auf die resoursen der activity zu zugreifen. Beim Instanzen der Klasse mit New solltest du den context mit übergeben.


    In der Klasse
    Context context;
    public getZone(Context cx) {
    context = cx;}


    werte = context . getResources().getStringArray(R.array.routen_Gardasee);


    In der activity


    getZone get = new getZone( this);


    https://developer.android.com/…e/android/content/Context



    Zeige mal wie du das im Java für Desktop machst.


    Android ist ein framework

  • hallo,


    danke, mit dem übergeben des context, hier "this" hat das ganze funktioniert, auch ohne das ich die klasse mit activity oder sowas extende....
    jetzt is es eine ganz normale klasse wie in java bei meinen projekten auch, die einen string bekommt, die passende xml-datei sucht und als string[] zurückgibt.


    so muss ich nur die erweitern und kann sie in beliebig vielen activities nutzen.


    du hast mir mit deinem code-beispiel echt geholfen,
    danke Tino


    hiermit für mich beendet

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!