我试过这个:
r = Resources.getSystem().getIdentifier("ball_red","drawable","com.Juggle2");
Log.i("FindBall","R = "+r);
Run Code Online (Sandbox Code Playgroud)
还有这个:
r = Resources.getSystem().getIdentifier("com.Juggle2:drawable/ball_red", null, null);
Run Code Online (Sandbox Code Playgroud)
但'r'总是最终为零.
我从一个不是Activity的助手类中调用这一行,并且不会扩展任何东西,所以我不能简单地调用getResources(),但我可以从我的传递它SurfaceView.
最终,我想"ball_red"用变量替换,但首先是第一件事.这不起作用.
com.Juggle2确实是我的包名.drawable是res它所在的文件夹,确实是文件的名称ball_red.
R.java说:
public static final int ball_red=0x7f020027;
Run Code Online (Sandbox Code Playgroud)
所以我不确定它为什么不起作用.
所以我不能使用资源,我必须传递一个上下文,我这样做:在这里:
class Collection extends SurfaceView implements SurfaceHolder.Callback {
Run Code Online (Sandbox Code Playgroud)
我正在创建我的类的新实例并将其getContext()作为参数传递.