Я новичок в разработке Android и столкнулся с проблемой, которую я не могу решить. Я внедрил ExpandableListView
с обычным Adapter
. У меня 5 групп, и каждая группа имеет 1 дочерний элемент. Каждый элемент группы имеет тип данных: org.myapp.ui.MyClass
.java.lang.ClassCastException: java.lang.String не может быть передан в org.myapp.ui.MyClass
Я пытаюсь получить объект MyClass
объекта каждого элемента группы при его расширении. Для этого я использую setOnGroupExpandListener
:
lv.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
public void onGroupExpand (int groupPosition){
MyClass selected = (MyClass)lv.getAdapter().getItem(groupPosition);
servId = selected.getServiceId();
// Do more stuff here
}
});
Когда я теперь проверить этот код в эмуляторе, я получаю следующее ClassCastException
, но только после расширения некоторых групп в ExpandableListView
несколько раз. Так что несколько раз это работает, а затем внезапно это не так, и я получаю это исключение.
java.lang.ClassCastException: java.lang.String не может быть приведен к org.myapp.ui.MyClass
в этой строке кода
МойКласс выбран = (MyClass) . lv.getAdapter() GetItem (groupPosition);
Если у кого-то есть идея, почему это происходит (но только после расширения нескольких групп в ExpandableListView
), пожалуйста, дайте мне знать.
Вы бросаете объект String в объект MyClass - эти типы несовместимы - getItem получит текст (String) из положения адаптера. –
, но он работает примерно 10 раз, прежде чем он сработает, поэтому я несколько раз расширяю группы exlistiew, и это работает на эти времена. –
Знаете ли вы другой способ получения объекта каждой группы при его расширении? –