Java Listview中的ClassCastException
以下代码生成异常,如下所示:Java Listview中的ClassCastException,java,android,classcastexception,Java,Android,Classcastexception,以下代码生成异常,如下所示: java.lang.ClassCastException: java.lang.Integer cannot be cast to vro.nagainfo.vromain.model.VROUser. listUsers是一个自定义listview,VROUser是一个类 listUsers.setOnItemClickListener(new OnItemClickListener() { @Override
java.lang.ClassCastException: java.lang.Integer cannot be cast to vro.nagainfo.vromain.model.VROUser.
listUsers是一个自定义listview,VROUser是一个类
listUsers.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
VROUser user = (VROUser) listUsers.getItemAtPosition(position);
Intent intent = new Intent(getActivity(), ProfileViewActivity.class);
intent.putExtra("userId", user.getUserID());
getActivity().startActivity(intent);
}
});
listUsers.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
VROUser user=(VROUser)listUsers.getItemAtPosition(position);
Intent Intent=新的Intent(getActivity(),ProfileViewActivity.class);
intent.putExtra(“userId”,user.getUserID());
getActivity().startActivity(意图);
}
});
如何修复此问题?您如何处理此代码
VROUser user = (VROUser) listUsers.getItemAtPosition(position);
像这样使用
VROUser user = listUsers.get(position);
使用它
ClassCastException
意味着您正在声明某种类型的变量,并将其分配给布局xml文件中定义的另一种类型
xml中的示例:
<Button
android:layout_height="wrap_content"
android:id="@+id/btn1"
android:layout_width="wrap_content">
</Button>
没有编译错误。但是你面对的是ClassCastException
检查您的列表视图。您如何在xml和java代码中声明正确:
ImageView img1 = (ImageView)context.findViewById(R.id.btn1);
VROUser user = listUsers.get(position);
这里,
listUsers.getItemAtPosition(位置)代码>它给出的是整数值,但您已强制转换到VROUser。listview显示成功…当OnItemClickListener callVROUser包含所选项目的详细信息时会生成异常。.调用以获取所选项目的更多详细信息,并将其显示在ProfileViewActivity详细信息存储在ArrayList中?请执行一项操作删除此行,然后重试此代码。它会起作用的。您正在尝试将值Integer type设置为VROUser,这是您的Bean类吗?您在适配器的getItem中返回了什么?VROUser是什么?getter setter类?添加您用来填充listUsers的部分代码。可能在某个地方,您正在基本适配器类中添加integeruse onclick