1

sqliteテーブルの値とWebサービスのIDを比較しようとしていますが、これまでに行ったことは次のとおりです。

      if(data_exist!=bookProduct.length()){
               Log.i("in update","m here");
               Cursor cursors = getRawEvents("select id from bcuk_book");
               try{  
                       for (int i = 0; i < bookProduct.length(); i++) 
                       {
                       JSONObject c = bookProduct.getJSONObject(i);
                       String Bid = c.getString(TAG_ID);
                       ArrayList<String> mapId = new ArrayList<String>();
                       while(cursors.moveToNext())
                       {
                           Log.e("cursors",cursors.getString(0));
                                 Log.i(Bid,Bid);
                                 if(cursors.getString(0)!=c.getString(TAG_ID)){
                                     Log.e("fas",Bid);
                                 }
                                 }
                                mapId.add(TAG_ID);
                                 Log.e(Bid,Bid);
                             }

                     }

私の問題は、ログに同じ値が表示されることです。

          if(cursors.getString(0)!=c.getString(TAG_ID)){

この条件は、それらが等しくない場合はログを出力することを示しています。しかし、問題は、sqliteとTAG_ID、つまりjson webserviceから同じ値を取得している場合でもそのブロックに入っていることです。これを解決する方法。どこで間違ったのですか?

4

1 に答える 1

0
 if(!cursors.getString(0).equalsIgnoreCase(c.getString(TAG_ID)))

これは文字列ですnull値を返しませんが、それらの間に""を返します

于 2012-12-17T11:02:27.490 に答える