16

リソースの名前がわかっている場合、リソースのIDを返すにはどうすればよいですか?

このようなもの:

String mDrawableName = "myappicon";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
4

1 に答える 1

34

MonoDroid では、そのコードは次のように変換されます。

 var resourceId = Resources.GetIdentifier(mDrawableName.ToLower(), "drawable", PackageName);

ただし、Android では推奨されていないため、個人的には GetIdentifier を使用しません。そのため、代わりに Reflection を使用します。

 var resourceId = (int)typeof(Resource.Drawable).GetField(mDrawable).GetValue(null);

ただし、そのコードには、任意の文字列に対して追加された try/catch エラー チェックが確実に含まれている必要があります。

于 2012-10-23T21:19:38.793 に答える