1

我试图通过内容解析器将数据插入到数据库中。数据被插入,但是每个插入()都有两个条目。我调试我的代码,但无法得到重复输入的原因。 这里是我的代码片段内容提供商ContentResolver插入重复数据

插入():

@Override 
    public Uri insert(Uri uri, ContentValues values) { 
     int uriType = uriMatch.match(uri); 
     SQLiteDatabase mDb = dBHelper.getWritableDatabase(); 

     long id = 0; 
     switch(uriType){ 
     case Allowed_url: 
      id = mDb.insert(DatabaseHandler.Names, null, values); 
      break; 
     default: 
      throw new IllegalArgumentException("unknown uri" + uri); 
     } 
     getContext().getContentResolver().notifyChange(uri, null); 
     return Uri.parse(Names_TABLE_PATH + "/" + id); 
    } 

代码内容解析:

ContentResolver myResolver = mActivity.getContentResolver(); 

           Uri browserProviderUri = Uri.parse("content://com.eaft.parentalcontrol." + 
             "AllowedUrlProvider/" + 
             "DatabaseHandler/NAMES"); 

           ContentValues cv = new ContentValues(); 

           System.out.println("History_AL.get(0).getUrl() is : " + 
             LightningView.History_AL.get(0).getUrl()); 
           cv.put("NAME", LightningView.History_AL.get(0).getName()); 
           cv.put("InTime", LightningView.History_AL.get(0).getInTime()); 
           cv.put("OutTime", LightningView.History_AL.get(0).getOutTime()); 
           myResolver.insert(browserProviderUri, cv); 
           System.out.println("myResolver.insert(browserProviderUri, cv) " + 
             myResolver.insert(browserProviderUri, cv)); 
LightningView.History_AL.remove(0); 

任何人都可以指导我指出我在哪里错了?

回答

0

megha你两次调用“myResolver.insert(browserProviderUri, cv);”这就是为什么它插入数据两次。

现在就从System.out.println声明中删除myResolver.insert(browserProviderUri, cv)

+0

这样一个愚蠢的错误:)。非常感谢。 – megha

+0

欢迎您。请接受我的答案,如果它可以帮助你。谢谢。 –