web-dev-qa-db-ja.com

Android resources intを文字列に変換するにはどうすればよいですか。例:Android.R.string.cancel?

このリソースint:Android.R.string.cancelから文字列値「cancel」を取得するにはどうすればよいですか?

ありがとうございました

24
HugoXP

単に Context#getString() を使用してください:

_String string = getString(Android.R.string.cancel);
_

私はすでにこのアプローチを試しましたが、成功しませんでした...私はクラスを持っています:_public class MyDialogFragment extends DialogFragment {_

DialogFragmentはContextのサブクラスではないため、有効なもの(アクティビティのものなど)にアクセスする必要があります。これを使って:

_String string = getActivity().getString(Android.R.string.cancel);
_

または、検出されたonAttach()で渡されたアクティビティを使用できますが、操作する有効なコンテキストがある限り、フラグメント内の任意の場所でこれを実行できることを理解してください。

49
Sam

ここに示されているように: http://developer.Android.com/reference/Android/content/Context.html#getString(int)

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

contextは、現在のアクティビティ、またはContext抽象クラスを継承するオブジェクトにすることができます。

7
SirDarius

これは、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);

お役に立てれば。

0
user2288580