Как я могу преобразовать ресурсы android int в строку. например: android.R.string.cancel?
Как получить строковое значение "cancel" из этого ресурса int: android.R.string.cancel?
Благодарю вас
Ответы
Ответ 1
Просто используйте Context#getString()
:
String string = getString(android.R.string.cancel);
Я уже пробовал этот подход, но без успеха... У меня есть класс: public class MyDialogFragment extends DialogFragment {
A DialogFragment не является подклассом Context, поэтому вам нужно получить доступ к допустимому (например, к вашей активности). Используйте это:
String string = getActivity().getString(android.R.string.cancel);
Или, как вы обнаружили, вы можете использовать Activity, прошедший в onAttach()
, но понимаете, что вы можете делать это где угодно внутри фрагмента, если у вас есть действующий контекст для работы.
Ответ 2
Как указано здесь: http://developer.android.com/reference/android/content/Context.html#getString(int)
String s = context.getString(android.R.string.cancel);
context
может быть текущей активностью или любым объектом, наследующим абстрактный класс context
.
Ответ 3
Это конвертирует любой Android-ресурс в строку.
В этом примере Ive использовал "R.color.myColor", но он будет работать с любым типом ресурсов Android.
colors.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);
Надеюсь, что это поможет.