java.lang.ClassCastException: android.widget.ExpandableListView $ ExpandableListContextMenuInfo - PullRequest
1 голос
/ 26 февраля 2012

Я очень надеюсь, что кто-нибудь сможет мне здесь помочь. Я работаю над этим примером: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList1.html

И я пытаюсь захватить, какой элемент вызвал contextMenu. Единственный пример, который я смог найти, был здесь:

Определение, какой выбранный элемент (в ListView) порождал ContextMenu (Android)

Единственное отличие состоит в том, что у меня есть ExpandableListView вместо ListView.

Когда я использую приведенный выше пример из stackoverflow, я получаю следующее исключение:

02-25 21:08:27.271: E/AndroidRuntime(7812): java.lang.ClassCastException: android.widget.ExpandableListView$ExpandableListContextMenuInfo
02-25 21:08:27.271: E/AndroidRuntime(7812):     at com.frugalicious.android.CategoryList.onCreateContextMenu(CategoryList.java:121)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at android.view.View.createContextMenu(View.java:4362)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at com.android.internal.view.menu.ContextMenuBuilder.show(ContextMenuBuilder.java:81)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at com.android.internal.policy.impl.PhoneWindow$DecorView.showContextMenuForChild(PhoneWindow.java:1880)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:460)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:460)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at android.view.ViewGroup.showContextMenuForChild(ViewGroup.java:460)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at android.widget.AbsListView.performLongPress(AbsListView.java:1874)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at android.widget.AbsListView.access$600(AbsListView.java:74)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:1827)
02-25 21:08:27.271: E/AndroidRuntime(7812):     at android.os.Handler.handleCallback(Handler.java:587)

Я предоставлю любую другую необходимую информацию. Огромное спасибо заранее.

1 Ответ

1 голос
/ 26 февраля 2012

Когда я использую приведенный выше пример из stackoverflow, я получаю следующее исключение

С приведенным выше утверждением вы имеете в виду, что буквально вставили ответ на связанный вопрос?Если это так, то неудивительно, что вы получаете ClassCastException.Попробуйте привести к ExpandableListView.ExpandableListContextMenuInfo, как предлагает исключение вместо.

@Override
public void onCreateContextMenu(ContextMenu contextMenu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    ExpandableListView.ExpandableListContextMenuInfo info =
            (ExpandableListView.ExpandableListContextMenuInfo) menuInfo;
   // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...