web-dev-qa-db-fra.com

Comment puis-je convertir les ressources Android int en une chaîne. Par exemple: Android.R.string.cancel?

Comment puis-je obtenir la valeur de chaîne "cancel" à partir de cette ressource int: Android.R.string.cancel?

je vous remercie

22
HugoXP

Utilisez simplement Context#getString() :

String string = getString(Android.R.string.cancel);

J'ai déjà essayé cette approche mais sans succès ... J'ai un cours: public class MyDialogFragment extends DialogFragment {

Un DialogFragment n'est pas une sous-classe de contexte, vous devez donc avoir accès à un utilisateur valide (comme votre activité). Utilisez ceci:

String string = getActivity().getString(Android.R.string.cancel);

Ou bien, en tant que votre découvert, vous pouvez utiliser l’activité passée dans onAttach(), mais comprenez que vous pouvez le faire n’importe où dans un fragment tant que vous avez un contexte valide avec lequel travailler. 

43
Sam

Comme indiqué ici: http://developer.Android.com/reference/Android/content/Context.html#getString(int)

String s = context.getString(Android.R.string.cancel);

context peut être l'activité en cours ou tout objet héritant de la classe abstraite Context.

7
SirDarius

Cela convertira toutes les ressources Android en chaîne. Dans cet exemple, j’ai utilisé une couleur «R.color.myColor», mais cela fonctionnera avec n’importe quel type de ressource Android.

couleurs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="btnDialBgColor">#00BFA5</color>
    <color name="btnDialBgColorActive">#C51162</color>
</resources>

TypedValue typedValueActive = new TypedValue();
TypedValue typedValue = new TypedValue();
getResources().getValue(R.color.btnDialBgColorActive, typedValueActive, true);
getResources().getValue(R.color.btnDialBgColor, typedValue, true);

J'espère que cela t'aides.

0
user2288580