项目一次又一次保存在sqlite数据库中

时间:2016-05-13 09:50:43

标签: android string android-sqlite repeat

我正在尝试在sqlite数据库中保存一个值,只要满足我所需的条件,但即使满足条件并且它不会停止,它也会保存数据库中的值。

这是我的代码

int asas = 0;
       if (list!= null) {
         for (int i1 = 0; i1 < list.size(); i1++) {

           String s= list.get(i1);

           while (msgBody.toUpperCase().contains(s.toUpperCase()) && !contactExists(context, msg_from)) {

               asas++;
             if (asas>=3)
             {
                screenMessage(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table
             }

             if (asas <3 && !contactExists(context, msg_from)) {


                screenMessagee(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table

             break;
              }
             break;
           }
         }
       }

现在让我解释一下我的代码。我有一个包含存储在其中的不同项目的列表视图。现在我在这里做的是,我正在检查如果用户给出的字符串名为&#34; msgBody&#34;包含存储的listview项。这就是为什么我使用int asas = 0以便当用户给出的字符串然后条件检查用户提供的字符串中有多少项列表视图。如果字符串包含3个或更多项,则将其保存在特定表中。如果string包含少于3个项目,则将其保存在另一个表中。 现在我遇到的问题是,如果提供的字符串包含let示例5项,则提供的字符串将在此表中保存3次

screenMessage(context, msg_from, msg_from, msgBody, msgDate); 

我发现它可能会发生,因为当条件达到存储的3个项目时,它将值保存在数据库中,但是因为提供的字符串包含5个项目,所以条件没有停止并且将值保存两次直到所有5个项目的条件都是满意的。 如果找到3个项目且值必须在数据库表中只保存一次,请帮助如何停止该条件

1 个答案:

答案 0 :(得分:1)

根据我的理解,您希望计算列表中存储的单词出现在特定字符串中的次数,然后将其存储在两个数据库表中的一个中,具体取决于它是否小于3。

我真的不明白你的代码,但试试这个:

int asas = 0;
   if (list!= null) {
     for (int i1 = 0; i1 < list.size(); i1++) {

       String s= list.get(i1);


       if(msgBody.toUpperCase().contains(s.toUpperCase()) && !contactExists(context, msg_from)){

           asas++;
       }


   }
     if(asas>0){
    if(asas<3)
    {
        screenMessagee(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table
    }

    else{

        screenMessage(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table
    }
     }