このリソースint:android.R.string.cancelから文字列値 "cancel"を取得するにはどうすればよいですか?
ありがとうございました
このリソースint:android.R.string.cancelから文字列値 "cancel"を取得するにはどうすればよいですか?
ありがとうございました
単に使用して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()
できる有効なコンテキストがあれば、フラグメント内のどこでもこれを実行できることを理解してください。
ここに示されているように:http://developer.android.com/reference/android/content/Context.html#getString(int)
String s = context.getString(android.R.string.cancel);
context
現在のアクティビティ、またはContext
抽象クラスを継承する任意のオブジェクトにすることができます。
これにより、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);
お役に立てれば。
それは古い質問ですが、もっと多くの人に役立つかもしれません。できることは、getIdentifier()を呼び出すことです。そのためには、この変数に必要な値の後に挿入して呼び出す必要があり、リソースIDに必要な文字列を作成します。例えば:
リソースファイル:
R.string.cancel
Javaの場合:
int resourceId = getResources().getIdentifier("cancel", "string", this.getPackageName())
println(getResources().getString(resourceId));
次に、rescourceId変数に、R.string.cancelと同等の値が含まれます。また、printlnには、リソース文字列に対応する値があります。
Kotlinの場合:
val resourceId = this.resources.getIdentifier("cancel", "string", this.packageName)
println(resources.getString(resourceId))
私が前に言ったのと同じ説明で。