listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?>parent,View view,int position,long id)
{
Map<String, Object> positioncurrent = list.get(position);
comment.setId(Integer.parseInt(String.valueOf(positioncurrent)));
int _id = comment.getId();
SQLiteDatabase db = databaseHelper.getWritableDatabase();
db.delete("comment",Comment.Commentinter.EVENT_ID + getString(R.string.dlx_wenhao),new String[]{String.valueOf(id)});
db.close();
list.remove(positioncurrent);
adapter.notifyDataSetChanged();
listView.setAdapter(adapter);
}
});
}
我完全新手,这是我写的监听事件,Comment类里是我数据库表属性的setget方法,逻辑上不知道对不对,只是现在它报错, java.lang.ClassCastException: java.util.HashMap cannot be cast to com.example.dengfugui.myapplication.Comment,不让我把positioncurrent进行类型转换,我应该怎么修改?或者基于我的 Map和Comment有没有啥更好的方法?求大神指点!!!!谢谢了!!!
Map<String, Object> positioncurrent = list.get(position);
->
com.example.dengfugui.myapplication.Comment positioncurrent = list.get(position);
类型强转错误 你适配器的数据类型不是map吧
我想你list中的对象应该不是map。应该是Comment对象,所以在转换时出现 java.lang.ClassCastException: java.util.HashMap cannot be cast to com.example.dengfugui.myapplication.Comment
Map positioncurrent = list.get(position);
list中的数据类型 无法强转成Map类型
强制类型转换错误,所以会报异常,你需要确认一下你的数据类型,然后在确认能否这样强制转换