.HashMap 不能转换为 android.database.Cursor

Posted

技术标签:

【中文标题】.HashMap 不能转换为 android.database.Cursor【英文标题】:.HashMap cannot be cast to android.database.Cursor 【发布时间】:2016-02-04 08:51:28 【问题描述】:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() 
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
            Cursor cursor = (Cursor) parent.getItemAtPosition(position);
            String item_sub  = cursor.getString(cursor.getColumnIndex(DBController.prop_no1));
            String prop = String.valueOf(item_sub);
            String.valueOf(parent.getItemAtPosition(position));
            Toast.makeText(Search_Equipments.this, prop, Toast.LENGTH_LONG).show();
        
    );

有人知道这段代码有什么问题吗?

【问题讨论】:

这一行的目的是什么:String.valueOf(parent.getItemAtPosition(position)); 究竟是什么让您认为parent.getItemAtPosition(position) 是一个光标? (显然不是) String.valueOf(parent.getItemAtPosition(position));就是得到那个位置的刺值 你能编辑我的代码吗? 【参考方案1】:

正如文档所述,getItemAtPosition 返回一个对象,检查您是否将此对象转换为正确的类型,因为您似乎没有。

公共对象 getItemAtPosition (int position)

在 API 级别 1 中添加 获取与列表中指定位置关联的数据。

参数

position 要获取哪些数据 退货 与列表中指定位置关联的数据

另一件事是你的行:

String.valueOf(parent.getItemAtPosition(position));

什么都不做。

【讨论】:

以上是关于.HashMap 不能转换为 android.database.Cursor的主要内容,如果未能解决你的问题,请参考以下文章

为什么我不能做hashmap.put()

《dataframe类型转换为hashmap》

将 HashMap 转换为 ArrayList

将 hashmap 转换为 stringarray

如何将复杂的hashmap转换为arrayList

如何在android中将HashMap转换为json数组?