Расширить дополнительный класс в основной деятельности, которая уже расширяет ActionBarActivity? - PullRequest
3 голосов
/ 28 октября 2011

Я пытаюсь добавить в один из моих проектов ту же совместимость с панелью действий, что и в примере кода Google "ActionBarCompat" .

Моя проблема в том, что я уже расширяю MapActivity в своем основном классе, но основной класс ActionBarCompat, похоже, требует, чтобы вы расширили ActionBarActivity.

Вот мой вопрос по Java 101: я знаю достаточно о Java, чтобы знать, что у меня не может быть множественного наследования, но недостаточно, чтобы знать идеальный способ справиться с этой ситуацией. Моим решением было расширить ActionBarActivity в моем основном классе, но затем сделать ActionBarActivity extension MapActivity. Это правильный способ сделать это? Если да, то не должен ли я сделать дубликат ActionBarActivity, если я хочу, чтобы он расширил другие вещи?

Спасибо за рассмотрение этого вопроса!

Ответы [ 3 ]

1 голос
/ 28 октября 2011

Посмотрите на пример, который вы предоставили - ActionBarActivity имеет только поле ActionBarHelper и вызывает его методы.Попробуйте сделать то же самое в вашей MapActivity.

1 голос
/ 28 октября 2011

Да, это абсолютно верный способ сделать это.Если вам нужен класс ActionBarActivity, который не расширяет MapActivity, вам придется создать другой класс.Я не думаю, что это приведет к значительному дублированию кода (чего я боюсь, вы боитесь).Позор разработчикам Android, хотя для того, чтобы сделать так, вам нужно написать собственный класс ActionBarHelper.

0 голосов
/ 01 ноября 2011

Используйте решение "Peter Knego" и укажите ссылку на эту библиотеку:

https://github.com/lvillani/android-compat-actionbar

или если вы используете Eclipse и svn:

https://svn.github.com/lvillani/android-compat-actionbar

...