私はこれを試しました:
r = Resources.getSystem().getIdentifier("ball_red","drawable","com.Juggle2");
Log.i("FindBall","R = "+r);
この:
r = Resources.getSystem().getIdentifier("com.Juggle2:drawable/ball_red", null, null);
しかし、'r' は常に 0 になります。
Activity ではなく、何も拡張しないヘルパー クラス内からこの行を呼び出しているため、単純に を呼び出すことはできませんgetResources()が、 my から渡すことはできますSurfaceView。
最終的には、変数に置き換えたいのです"ball_red"が、まず最初に。これは機能していません。
com.Juggle2は確かに私のパッケージ名です。drawableはそれが入っているresフォルダーで、ファイルの名前は確かにball_red.
R.java 言います:
public static final int ball_red=0x7f020027;
そのため、なぜ機能しないのかわかりません。
したがって、リソースを使用することはできません。コンテキストを渡す必要があります。このようにしています。
class Collection extends SurfaceView implements SurfaceHolder.Callback {
クラスの新しいインスタンスを作成し、それgetContext()をパラメーターとして渡します。