Auf strings.xml mit einer Variable zugreifen

  • Hey folks, ich möchte gerne mit einem Wert einer <String> Variable den dazugehörigen Text aus der strings.xml holen.


    Natürlich frage ich hier nicht nach ohne vorher danach gesucht zu haben, ich habe "Lösungen" gefunden allerdings funktionieren die bei mir nicht... :-/


    um keine Verwirrung zu stiften was meine Variables.mainActivity ist

    Java
    public static Activity mainActivity;

    sozusagen mein Context...


    Java
    static public String getString(String resourceText) {
        if (Variables.locale.getLanguage().equalsIgnoreCase("en") || Variables.locale.getLanguage().equalsIgnoreCase("de")) {
          int a = Variables.mainActivity.getResources().getIdentifier(resourceText, "string", Variables.mainActivity.getPackageName());
          return getString(a);
        }
    }

    diese Lösung hab ich in einem bekannten englischsprachigen Forum gefunden. Nur erwartet die Methode getString bei mir einen String als Parameter und keinen int... hat da jemand vielleicht eine Idee wie es sonst noch zu bewerkstelligen ist?

  • Wenn das Dein Anwendungsfall ist, sollte der überflüssig sein.
    Das sollte das System doch schon berücksichtigen.


    Ansonsten:

    Java
    static public String getString(String resourceText) {
      int a = Variables.mainActivity.getResources().getIdentifier(resourceText, "string", Variables.mainActivity.getPackageName());
      return Variables.mainActivity.getString(a);
    }


    Aber auch das müsste eigentlich heftig schief gehen, weil in den Standardfiles herumgesucht wird.


    Was genau willst Du Dir damit eigentlich vereinfachen?

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • oh man bin ich doof :P ich hab einfach nur meine eigene getString aufgerufen :S :S :S


    Danke erst mal :thumbup:


    Die ganze Methode sieht so aus...Wird die evtl nicht nicht sagen... Ich möchte, wenn die Locale auf "de" oder "en" gesetzt ist, die Texte aus meinen strings.xml benutzen. Die getString Methode nimmt ja automatisch die richtige strings.xml je nach eingestellter Locale.


    Falls nicht deutsch oder englisch eingestellt ist, sucht die Methode nach dem passenden Text Schlüssel in einer .properties Datei, die auf der Maschine liegt zu der meine App verbunden ist. Ist etwas aufwendiger da wir unsere Software in 27 verschieden Sprachen überestzen lassen.


    Beantwortet das deine Frage?

Jetzt mitmachen!

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