Подтвердить что ты не робот

Как я могу преобразовать ресурсы android int в строку. например: android.R.string.cancel?

Как получить строковое значение "cancel" из этого ресурса int: android.R.string.cancel?

Благодарю вас

4b9b3361

Ответ 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(), но понимаете, что вы можете делать это где угодно внутри фрагмента, если у вас есть действующий контекст для работы.

Ответ 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);

Надеюсь, что это поможет.