Listview

时间:2015-06-05 10:18:41

标签: java android classcastexception

以下代码生成异常:

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);

            }
        });

如何解决这个问题?

4 个答案:

答案 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。