2010-09-29 1 views
3

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

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

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

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

Возможно ли это? Я видел этот связанный вопрос, и теперь я задаюсь вопросом: How to load com.android.music code into Eclipse and compile?

Btw, я работаю против Android 2.2 SDK, но было бы полезно узнать, отличается ли ответ на более старые версии, такие как 1.5. Благодарю.

ответ

6

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

0

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

1

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

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

Смежные вопросы