How can I convert the android resources int to a string. eg.: android.R.string.cancel?

前端 未结 3 700
后悔当初
后悔当初 2020-12-30 21:11

How can I obtain the string value \"cancel\" from this resource int: android.R.string.cancel ?

thank you

相关标签:
3条回答
  • 2020-12-30 21:29

    Simply use Context#getString():

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

    I've already tried this approach but with no success... I've a class: public class MyDialogFragment extends DialogFragment {

    A DialogFragment is not a subclass of Context, so you need to get access to a valid one (like your Activity's). Use this:

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

    Or as your discovered you can use the Activity passed in onAttach(), but understand you can do this anywhere inside a Fragment as long as you have a valid Context to work with.

    0 讨论(0)
  • 2020-12-30 21:30

    This will convert any Android resource into a string. In this example I’ve used an ‘R.color.myColor’ but it will work with any Android resource type.

    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);
    

    Hope this helps.

    0 讨论(0)
  • 2020-12-30 21:33

    As indicated here: http://developer.android.com/reference/android/content/Context.html#getString(int)

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

    context can be the current activity, or any object inheriting the Context abstract class.

    0 讨论(0)
提交回复
热议问题