Я пробовал это:
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' всегда заканчивается как ноль.
Я вызываю эту строку из вспомогательного класса, не являющегося Activity, и ничего не расширяю, поэтому я не могу просто вызвать getResources()
, но я могу передать его из моего SurfaceView
.
В конце концов, я хочу заменить "ball_red"
на переменную, но сначала сначала. Это не работает.
com.Juggle2
- действительно мое имя пакета. drawable
- это папка res
, в которой она находится, и имя файла действительно ball_red
.
Р.Ява говорит:
public static final int ball_red=0x7f020027;
Поэтому я не уверен, почему он не работает.
Поэтому я не могу использовать ресурсы, я должен передать контекст, и я делаю так: Внутри:
class Collection extends SurfaceView implements SurfaceHolder.Callback {
Я создаю новый экземпляр моего класса и передаю его getContext()
в качестве параметра.