2013-09-03 2 views
6

Я сейчас перехожу из ActionBarSherlock в библиотеку ActionBarCompat, которая была введена в Google IO 2013 (я делаю это, чтобы использовать ActionBarDrawerToggle).Невозможно переопределить конечный метод из ActionBarActivity

Я уже разобрал все необходимые зависимости (AppCompat, последняя библиотека поддержки ...), исправил все импорт, но теперь, когда я пытаюсь использовать ActionBarActivity's onMenuItemSelected, я получаю сообщение об ошибке.

@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    ... 
} 

Ошибка:

Cannot override the final method from ActionBarActivity

оригинальный метод от ActionBarActivity (унаследованный от FragmentActivity) является окончательным. Когда я использовал ABS, это работало, теперь я не могу переопределить метод.

(MenuItem имеет класс android.view.MenuItem и не Compat версия ...)

Могу ли я что-то отсутствует?

ответ

11

Вместо использования onMenuItemSelected я использовал onOptionsItemSelected и код, составленный в порядке.

Может быть, onMenuItemSelected появляется в документации, но не в коде?

+3

Чтобы ответить на ваш вопрос: Нет, в 'android.support.v7.app.ActionBar' метод' onMenuItemSelected' находится в коде, но это ** final ** метод, и вы не можете '@ Override' ** окончательные ** методы. – Stigi

+0

жаль, что я там не ошибся, и его поздно отредактировать. Конечно, я имел в виду 'android.support.v7.ActionBarActivity'. – Stigi

+0

@Stigi вы правы, но это странно, потому что с использованием ABS я сделал переопределить его, и он также определен окончательно. Не уверен, что это за цель, если не переопределить ее ... – Michael