Невозможно вызвать getItemId () для логического типа примитива - PullRequest
1 голос
/ 23 февраля 2012

Я новичок в разработке для Android, и я искал большинство примеров вариантов меню в Интернете. Я пытаюсь обработать простое событие щелчка, используя «getItemId», и получаю следующую ошибку:

Невозможно вызвать getItemId () для логического типа примитива.

Вот код:

public boolean onOptionsItemSelected(MenuItem menu)
{
    // Handle Selection of Menu Items
    switch (item.getItemId())
    {
        case(R.id.refresh):Toast.makeText(this, "Refresh", Toast.LENGTH_LONG).show();
        break;
        case(R.id.info):Toast.makeText(this, "Info", Toast.LENGTH_LONG).show();
        break; 
    }
return true;

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 23 февраля 2012

не это:

switch (item.getItemId())

но:

switch(menu.getItemId())

Причина, по которой это терпит неудачу, заключается в том, как говорится в ошибке. Booleans - это примитивы, а не объекты. Я предполагаю, что где-то выше этой выдержки находится строка boolean item;. Если вы включили логическое значение, единственными возможными случаями будут true и false.

Вместо item используйте menu - это элемент меню, передаваемый этому методу в качестве параметра.

И, к сожалению, я не знаю, будет ли * .getItemId () работать на menuItem. Я не пробовал это. Если это не так, дайте мне знать, и я помогу вам найти другой путь.

...