33

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

ありがとうございました

4

4 に答える 4

62

単に使用して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()できる有効なコンテキストがあれば、フラグメント内のどこでもこれを実行できることを理解してください。

于 2012-11-14T22:30:43.273 に答える
7

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

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

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

于 2012-11-14T22:31:44.857 に答える
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);

お役に立てれば。

于 2017-04-25T21:37:52.240 に答える
0

それは古い質問ですが、もっと多くの人に役立つかもしれません。できることは、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))

私が前に言ったのと同じ説明で。

于 2022-02-11T12:55:44.633 に答える