正在开发一个安卓应用程序,从电话中读取联系人(姓名和号码),并将其保存在SQLite数据库中(有点像将联系人同步到我的应用程序中,而不是实际上)。我已经阅读并保存了电话中的联系人。
现在,我想添加新的联系人添加到手机后,应用程序安装。所以我计划做的是读取手机上的所有联系人,并将其与数据库中已经保存的联系人进行比较。它是通过比较数字来完成的(通过检查数据库中读取的数字和数字是否相同)。如果在数据库中找不到从电话中读取的号码,我希望将该号码及其特定联系人名保存到数据库中。下面的代码就是这样做的。
public int checkContacts(String name, String number) { // name and number are read from phone
String query = "select name,number from contacts";
cur = db1.rawQuery(query, null); // cur is object of Cursor
while(cur.moveToNext())
{
array.add(cur.getString(1)); // array is object of ArrayList<String>
if( !(number.equals(array)))
{
insertContacts(name, number); // function to insert to database
count++; // count is used to get the number of contacts saved
}
}
return count;
}正在使用Eclipse和Android仿真器开发这个应用程序。执行此代码后,一些20000+联系人被保存到我的数据库中。实际上,我的模拟器里只有11个联系人。
为什么这么多联系人被添加到我的数据库,我如何才能添加新添加的联系人到数据库?
发布于 2014-09-17 06:50:26
尝试使用ArrayList的contains方法检查数组列表中的值,如下所示:contains方法在ArrayList中搜索指定的对象。
if(!array.contains(number))发布于 2014-09-17 06:40:29
(number.equals(array)) => always return falsehttps://stackoverflow.com/questions/25883675
复制相似问题