正在开发一个Android应用程序来从手机中读取联系人(姓名和号码)并将其保存在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 Emulator开发此应用程序。执行此代码后,大约20000多个联系人被保存到我的数据库中。实际上我的模拟器中只有11个联系人。
为什么这么多联系人被添加到我的数据库中?如何才将新添加的联系人添加到数据库?
答案 0 :(得分:1)
尝试使用ArrayList
的contains方法检查数组列表中的值,如下所示:
contains
方法在ArrayList
中搜索指定的对象。
if(!array.contains(number))
答案 1 :(得分:0)
(number.equals(array)) => always return false