以下代码生成异常:
java.lang.ClassCastException: java.lang.Integer cannot be cast to vro.nagainfo.vromain.model.VROUser.
listUsers是一个自定义列表视图,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);
}
});
如何解决这个问题?
答案 0 :(得分:0)
你在用这段代码做什么???
VROUser user = (VROUser) listUsers.getItemAtPosition(position);
像这样使用
VROUser user = listUsers.get(position);
使用它
答案 1 :(得分:0)
ClassCastException
表示您正在声明某种类型的变量并将其分配给您在布局xml文件中定义的另一种类型...
xml中的示例:
<Button
android:layout_height="wrap_content"
android:id="@+id/btn1"
android:layout_width="wrap_content">
</Button>
在你的java代码中
ImageView img1 = (ImageView)context.findViewById(R.id.btn1);
没有编译错误。但你是面对ClassCastException
检查你的ListVIew。你是如何在xml和java代码中声明的?
答案 2 :(得分:0)
正确:
VROUser user = listUsers.get(position);
答案 3 :(得分:0)
在这里,listUsers.getItemAtPosition(position);
它给出了整数值,但你已经转换为VROUser。