当前位置: 首页 > 知识库问答 >
问题:

java.lang.String不能强制转换为CustomObj[duplicate]

樊飞飙
2023-03-14

我有一个用于listview的自定义适配器,它接收自定义对象“CustomObj”的数组并将其显示在listview中,

ArrayList<CustomObj> items;

尝试使用AdapterView.OnItemClickListener:

@Override
        public void onItemClick(AdapterView < ? > arg0, View arg1, int arg2, long arg3) {
            CustomObj obj = (CustomObj)arg0.getAdapter().getItem(arg2);
        }
    };
@Override
        public void onItemClick(AdapterView < ? > arg0, View arg1, int arg2, long arg3) {
            CustomObj obj = (CustomObj)arg0.getItemAtPosition(arg2);
        }
    };
java.lang.String cannot be cast to com.example.project1.CustomObj

共有1个答案

屈健柏
2023-03-14

您尝试使用的代码

arg0.getAdapter().getItem(arg2);

将返回数据集中arg2位置的项。

现在你的数据集到底是什么?你可能在什么地方用过这个

adapterView.setAdapter(YOUR_ADAPTER)

这就是如何将适配器设置到适配器视图的方法。适配器为您的视图提供数据。现在,如果您转到your_adapter类,您会发现一个方法:

public Object getItem(int i) {

此方法返回的值是您将在项目单击事件arg0.getAdapter().getItem(arg2);中获得的值。

在您的示例中,getitem似乎返回了一个字符串,因此您不能将其强制转换为customobj

 类似资料: