我正在顯示一個ListView,我填充了一個名爲LazyAdapter的自定義ListAdapter,其代碼來自這裏:http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/。 LazyAdapter使用我的自定義對象「EventData」。我設法顯示我的列表,因爲我想,但現在我想獲得點擊的對象。我發現其他問題(here,here和there)一些幫助,並寫代碼:點擊從ListView獲取自定義對象
private OnItemClickListener mEventClickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> av, View v, int arg2, long arg3) {
EventData selectedEvent = (EventData) eventsListView.getItemAtPosition(arg2);
};
不過,我在執行得到鑄造錯誤。
05-14 17:10:46.718: E/AndroidRuntime(3863): java.lang.ClassCastException: java.lang.Integer
我也嘗試過這種類似的解決方案:
EventData selectedEvent = (EventData) av.getItemAtPosition(arg2);
我得到了同樣的錯誤投。我不知道如何以其他方式獲得我的Object EventData。
感謝您的幫助!
發佈您的適配器代碼 – Pragnani 2013-05-14 15:26:43
同意,它看起來像您的適配器的'getItem()'返回一個意外的值。 (最終,ListView的getItemAtPosition()只是調用你的Adapter的getItem()函數。 – 2013-05-14 15:34:08
你如何填充/創建你的LazyAdapter?它接合你給適配器的ArrayList是一個整數數組。 – 2013-05-14 15:34:18