如何将android资源int转换为字符串。例如:android.R.string.cancel?

时间:2012-11-14 22:29:04

标签: android android-resources

如何从此资源中获取字符串值“cancel”int:android.R.string.cancel?

谢谢

3 个答案:

答案 0 :(得分:46)

只需使用Context#getString()

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

  

我已经尝试过这种方法,但没有成功......我上课了:public class MyDialogFragment extends DialogFragment {

DialogFragment不是Context的子类,因此您需要访问有效的(如您的Activity)。使用此:

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

或者正如您所发现的那样,您可以使用onAttach()中传递的活动,但了解您可以在片段内的任何位置执行此操作,只要您具有可用的有效上下文。

答案 1 :(得分:7)

如此处所示:http://developer.android.com/reference/android/content/Context.html#getString(int)

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

context可以是当前活动,也可以是继承Context抽象类的任何对象。

答案 2 :(得分:0)

这会将任何Android资源转换为字符串。 在这个例子中,我使用了'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);

希望这有帮助。