Как ссылаться на R.java других приложений в Android, таких как com.android.music? - PullRequest
3 голосов
/ 30 сентября 2010

Я пытаюсь разработать приложение, которое дополнит встроенный музыкальный проигрыватель. Я использовал git для загрузки пакета com.android.music и посмотрел его код. Я могу запустить музыкальный проигрыватель, скопировав его код и запустив действия с намерениями.

Теперь мне нужно получить дескриптор текущего представления. В файле MusicUtils.java я вижу строку с надписью

View nowPlayingView = a.findViewById(R.id.nowplaying);

Я бы хотел сделать то же самое. Только у меня нет доступа к файлу R.java, поэтому я не могу написать, например, R.id.nowplaying. Как мне это сделать? Как мне ссылаться на музыкальные плееры R.java? Я знаю, что материал R.java объявлен публичным, так что это не должно быть проблемой. Правильно?

Возможно ли это вообще? Я видел этот связанный вопрос и теперь задаюсь вопросом: Как загрузить код com.android.music в Eclipse и скомпилировать?

Кстати, я работаю против Android 2.2 SDK, но было бы полезно узнать, отличается ли ответ для более старых версий, таких как 1.5. Спасибо.

Ответы [ 3 ]

6 голосов
/ 30 сентября 2010

Вы не можете получить указатель на View, который не находится в вашем процессе, даже если у вас есть доступ к R классу.

1 голос
/ 06 января 2011

Класс R - это код, сгенерированный платформой Android из файлов ресурсов XML, найденных в каталоге / res проекта.Это означает, что вы хотите использовать git-репозиторий, в котором вы получили MusicUtils.java, и перейти в корневой каталог соответствующего проекта, чтобы посмотреть в /res/layout/.Затем вам нужно найти файл макета XML, объявляющий View с идентификатором «nowplaying».

Скопируйте этот файл в каталог res / layout вашего собственного проекта, и Android скомпилирует класс R, чтобы вы могли получить к нему доступ.R.id.nowplay, по которому вы так скучаете.

0 голосов
/ 30 сентября 2010

У вас есть исходный код, так что берите ресурсы и создайте свой собственный R-файл. Кроме того, вы можете получить доступ к системным ресурсам Android с помощью android.R.<type>.<name>.

...