Невозможно заменить ресурсы проекта библиотеки андроида ресурсами приложения Android.

В моем проекте библиотеки Android я: /res/drawable/redButton.png

И я ссылаюсь на этот файл изображения в своей библиотеке следующим образом: public class MyLibExample {..... RadioButton r = new RadioButton (контекст); r.setButtonDrawable(com.mylib.R.drawable.redButton); }

Теперь, в моем проекте приложения для Android, у меня одинаковые res: /res/drawable/redButton.png Однако этот redButton.png - это другой графический файл, отличный от того, который определен в библиотеке.

Я не ссылаюсь на redButton.png в своем приложении. Вместо этого я просто создаю объект типа MyLibExample, который был определен в библиотеке.

Я ожидал увидеть redButton.png из приложения, а не из библиотеки. Тем не менее, redButton.png из библиотеки всегда используется.

Как заставить MyLibExample использовать redButton.png из приложения?

1 ответ

Проблема в том, что id com.mylib.R.drawable.redButton - это id, открытый в mylib. Вам нужен идентификатор, определенный в моем приложении. Итак, в вашем коде приложения:

RadioButton r = (RadioButton)findViewById(com.mylib.R.id.radiobuttonId);
r.setButtonDrawable(com.myapp.R.drawable.redButton);

licensed under cc by-sa 3.0 with attribution.