2017-06-30 3 views
1

Wie kann ich auf eine statische java Variable in einer Ressource in strings.xml im Android Studio zugreifen?wie auf eine Java-Variable in strings.xml zugreifen

Ich habe eine Variable wie folgt aus:

public static final String NUM_OF_DAYS = "10"; 

Nun Ich möchte dies in einer Ressource in strings.xml irgendwie verwenden.

EDIT:

Ich möchte nur die string.xml Ressource nutzen (die NUM_OF_DAYS zugreifen) in einer Java-Datei.

+0

Sie ** kann nicht ** Zugriff auf Java-Objekte aus einer Ressourcendatei –

+0

@Rotwang Ich wusste nicht, ob es möglich ist oder nicht, weshalb ich die Frage in erster Linie gestellt habe. Sollen nicht Stack-Exchange-Sites dafür sein? – backslashN

+0

Nein. Diese Seite dient dazu, eine Frage zu nicht funktionierendem Code zu stellen, wobei ein Fehler behoben werden muss. Und es setzt vorausgehende Forschungsbemühungen voraus. –

Antwort

4

Sie können Ihre Variable wie diese

public static final String NUM_OF_DAYS = "10"; 

string.xml

<string name="days">No of days: %s</string> 

Java-Klasse

YOUR_VIEW.settext(getString(R.string.days, NUM_OF_DAYS)); 
+0

Das OP fragte umgekehrt: Wenn er eine Variable in Java hat, denkt er, dass er aus einer Ressourcendatei darauf zugreifen kann. Was ** unmöglich ist **. –

+0

@Pratik Du hast meinen Standpunkt perfekt verstanden. Und danke für die Hilfe. – backslashN

1

verwenden Hey man kann nicht so etwas tun wir nicht bearbeiten Zeichenfolge .xml aus dem Java-Code

+0

Nicht, was das OP gefragt hat: Angesichts einer Variablen in Java denkt er, dass er aus einer Ressourcendatei darauf zugreifen kann. Was ** unmöglich ist **. –

0

Da getString() nicht statisch ist, benötigen Sie einen statischen Kontext dafür.

In Manifest-Datei declare folgende

<application android:name="com.xyz.YourApplication"> 

</application> 

wripte Dann Klasse folgende

public class YourApplication extends Application { 
    private static Context context; 

    public void onCreate() { 
     super.onCreate(); 
     YourApplication.context = getApplicationContext(); 
    } 

    public static Context getAppContext() { 
     return YourApplication.context; 
    } 
} 

Jetzt können Sie statischen Kontext Sie

müssen überall verwenden
 private static final String NUM_OF_DAYS = YouApplication.getAppContext() 
.getString(R.string.yourString); 
+0

Nicht das, was das OP gefragt hat: Angesichts einer Variablen in Java denkt er, dass er aus einer Ressourcendatei darauf zugreifen kann. Was ** unmöglich ist **. –

Verwandte Themen