2017-08-07 5 views
0

Est-ce que quelqu'un connaît une solution à mon problème? J'ai créé un éditeur pour mon jeu Préférences partagées en tant qu'activité. Il y a une liste avec toutes les valeurs d'une Préférences partagées. Mais quand j'écris pour un textView appelé value_theme:Android utilise une mauvaise chaîne de caractères

value_theme.setText(R.string.editor_div_value + settings_theme);

Android utilise une autre ressource de chaîne d'une autre activité.

Quand j'écris

value_theme.setText(R.string.editor_div_value + "" + settings_theme);

l'application définit le texte TextView à: 21312309366. Est-ce que quelqu'un sait comment résoudre ce problème?

+0

Quand j'utilise value_theme.setText; (+ settings_theme "valeur actuelle".) tout fonctionne bien, mais je veux développer pour plus d'une langue. – iamniklas

+0

settings_theme est la valeur de la préférence partagée – iamniklas

+0

'R.string.editor_div_value' est juste un nombre, qui est comme un index de la valeur de la chaîne. Vous devez acquérir la valeur de chaîne, pas seulement référencer l'index. Voir @Bob réponse pour un exemple – Doomsknight

Répondre

3

Utilisez ceci:

value_theme.setText(context.getString(R.string.editor_div_value) + "" + settings_theme); 

Puisque vous apposent la chaîne, vous utilisez par erreur la méthode setText mal qui accepte un CharSequence et ensembles à la TextView tel qu'il est.

Ou une autre façon est de faire la mise en forme de chaîne.

<string name="editor_div_value">Your String value %1$s</string> 

Pour obtenir la chaîne dans le code Java:

value_theme.setText(context.getString(R.string.editor_div_value, settings_theme)); 
+0

okay attendez un instant je l'essaie – iamniklas

+0

voulez-vous dire getApplicationContext() avec le contexte? – iamniklas

+0

Vous pouvez passer n'importe quel contexte. Activité ou contexte d'application. – Bob