我是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的選擇=(MyClass的) 。lv.getAdapter()的getItem(groupPosition);
如果有人有一個想法,爲什麼會發生這種情況(但只有在ExpandableListView
擴大幾個組後),請讓我知道。
您正在將一個String對象投射到一個'MyClass'對象 - 這些類型是不兼容的 - getItem將從適配器位置獲取文本(字符串)。 –
,但它在崩潰前工作了大約10次,所以我擴大了幾次exlistiew的組,並且適用於這些時間。 –
你是否知道在擴展它時獲取每個組項目的對象的另一種方法? –