首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将SQLite数据库中的值与从电话中读取的值进行比较,并只保存新值?

如何将SQLite数据库中的值与从电话中读取的值进行比较,并只保存新值?
EN

Stack Overflow用户
提问于 2014-09-17 06:24:48
回答 2查看 1.1K关注 0票数 0

正在开发一个安卓应用程序,从电话中读取联系人(姓名和号码),并将其保存在SQLite数据库中(有点像将联系人同步到我的应用程序中,而不是实际上)。我已经阅读并保存了电话中的联系人。

现在,我想添加新的联系人添加到手机后,应用程序安装。所以我计划做的是读取手机上的所有联系人,并将其与数据库中已经保存的联系人进行比较。它是通过比较数字来完成的(通过检查数据库中读取的数字和数字是否相同)。如果在数据库中找不到从电话中读取的号码,我希望将该号码及其特定联系人名保存到数据库中。下面的代码就是这样做的。

代码语言:javascript
复制
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个联系人。

为什么这么多联系人被添加到我的数据库,我如何才能添加新添加的联系人到数据库?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-17 06:50:26

尝试使用ArrayList的contains方法检查数组列表中的值,如下所示:contains方法在ArrayList中搜索指定的对象。

代码语言:javascript
复制
  if(!array.contains(number))
票数 1
EN

Stack Overflow用户

发布于 2014-09-17 06:40:29

代码语言:javascript
复制
(number.equals(array)) =>  always return false
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25883675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档