Ist es möglich, Sie zu aktualisieren string.xml Datei zur Laufzeit in android?
Wollte ich anwenden Lokalisierung in meiner app dynamisch, so ist es möglich, zu definieren, strings in java-Datei und Holen Sie, dass Zeichenketten, um unsere layout-xml-Datei, die ich.e, wie wir es tun @string/anystringname ersetzen Sie diese durch die Zeichenketten definiert, die in der java-Datei, um unsere layout-Datei @classextender definiert java-Datei ????
Is it possible to ...
KEINE. Sie können nicht ändern die Ressource-Dateien zur Laufzeit.- Aber es muss irgendeine Art und Weise zu tun, programmatisch und bekommen die id ' s????
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Grunde Nicht.
Nicht manipuliert werden kann Ressource-Datei dynamisch.
Sie implementieren müssen, um eine solche Funktionalität auf Ihrer eigenen.
Hier ist ein Beispiel:
Englisch.json
Französisch.json
<TextView android:text="@string/hello"/>
dies, natürlich, wird nicht funktionieren. Stattdessen können Sie den text der TextView Programm. Wenn Sie deklarieren eine TextView in der xml-Datei wie folgt<TextView android:id="@+id/my_textview">
können Sie meine Lösung wie folgt aus; TextView textView = (TextView) findViewById(R. id.my_textview); textView.setText(StringManager.getInstance().getString("hello"));Ist dies nicht möglich. Es ist jedoch möglich, ändern Sie die Sprache der app zur Laufzeit. Dies ermöglicht Ihnen das wechseln zwischen den strings.xml für die verschiedenen Sprachen.
Eine Bibliothek, die ich dafür verwendet wird, ist die Android-Lokalisierung Bibliothek
Alle Ihre Aktivitäten haben zu erweitern die LocalizationActivity die sich die AppCompatActivity. Sie müssen nur anrufen
setLanguage("de");
Ändern Sie Ihre apps Sprache, und verwenden Sie einen anderen strings.xml
In dieser thread Lesen Sie mehr zu möglichen Lösungen.