【发布时间】:2014-02-15 01:15:21
【问题描述】:
我想创建一个将数据添加到sqlite 数据库的方法,该方法将HashMap<String,Person> 作为类中的参数。
从另一个类中,我想在HashMap<String,Person> 中添加可以被我的数据库处理程序类使用的人员详细信息。
我进行了很多搜索并尝试了很多示例,但无法找到解决方案。现在我有点困惑如何做到这一点。
我现在以以下方式执行此操作,并获得ClassCastException。
第 1 类:PersonDataSource.java
public long createContact(HashMap<String, Contact> queryValues) {
ContentValues values = new ContentValues();
Contact val = Contact.class.cast(queryValues);
values.put( MySQLiteHelper.COLUMN_FIRST_NAME, val.getFirstName());
values.put( MySQLiteHelper.COLUMN_LAST_NAME, val.getLastName());
values.put( MySQLiteHelper.COLUMN_NICK_NAME, val.getNickName());
values.put( MySQLiteHelper.COLUMN_BIRTHDATE, val.getBirthDate());
values.put( MySQLiteHelper.COLUMN_PRIMARY_CONTACT, val.getPrimaryContact());
long insertId = database.insert(MySQLiteHelper.TABLE_NAME, null, values);
return insertId;
}
并形成另一个类:
datasource = new ContactDataSource(this);
datasource.open();
Cursor phones = getContentResolver().query(Phone.CONTENT_URI, PROJECTION,null,null, Phone.DISPLAY_NAME);
while (phones.moveToNext())
{
String name=phones.getString(phones.getColumnIndex(Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(Phone.NUMBER));
Person data = new Person();
data.setNickName(name);
data.setPrimaryContact(phoneNumber);
HashMap<String, Person> map = new HashMap<String, Person>();
map.put("data", data);
long id = datasource.createContact(map);
Log.e(CLASS_NAME, "Contact id :" + String.valueOf(id));
}
phones.close();
datasource.close();
我该如何解决这个问题?
【问题讨论】:
标签: java android sqlite hashmap classcastexception