Android在后台插入数据库中的值

时间:2014-05-18 13:34:00

标签: android

我使用asyntask在数据库中输入值。在背景方法中,我正在调用这种方法。

           private void callLogin() {
             GetDataFromApi getDataFromApi = new GetDataFromApi(url);

             if (!isTableFalse) {
              Log.e("MAI A GAAYA SYNCRONISE DATA BASE MAI", "HA MAI AYA");
             String message = 
   getDataFromApi.postSignIn().toString().trim();
              syncroniseDatabase(message);
              populateChurchListOnValidating
                    .populateChurchList(parseJsonToArrayList());
            } else {
              try {
                 loginValue = 
              Integer.parseInt(getDataFromApi.postSignIn());
                     Log.e("Login VAlue", "" + loginValue);
               } catch (NumberFormatException nfe) {
                 nfe.printStackTrace();
             }
         }
         }

和我的syncroniseDatabase(消息)就像这样

      private void syncroniseDatabase(String mesString) {
  

Log.e(" URL in SYNCRONISATION","" + url);

              try {
               InsertTable insertTable = new InsertTable();
               JSONObject jsonObject = new JSONObject(mesString);
      insertTable.addRowforMemberTable(jsonObject.getString(
      RegistrationAppConstant.MEMBER_ID),

        jsonObject.getString(RegistrationAppConstant.CLIENT_ID),

        jsonObject.getString(RegistrationAppConstant.FIRSTNAME),

        jsonObject.getString(RegistrationAppConstant.SURNAME),

        jsonObject.getString(RegistrationAppConstant.EMAIL_ID),

       jsonObject.getString(RegistrationAppConstant.PASSWORD));
               Log.e("Inserting Data DONE", "" + "Done");
           } catch (JSONException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }

和我的类forInsertTable就像这样

        public class InsertTable {

       public void addRowforMemberTable(String memberID, 
           String clientID, String 
               firstName,String surName, String emailIDString, String passWordString) 
            {
           Log.e("NAME", "" + memberID + "  " + clientID + " " + firstName + " "
                + surName + " " + emailIDString + " " + 
                  passWordString);

           ContentValues contentValue = new ContentValues();

         contentValue.put(AppConstant.MCM_MEMBER_MEMEBER_ID, memberID);
         contentValue.put(AppConstant.MCM_MEMBER_CLIENT_ID, clientID);
         contentValue.put(AppConstant.MCM_MEMBER_FIRST_NAME, firstName);
          contentValue.put(AppConstant.MCM_MEMBER_LAST_NAME, surName);
          contentValue.put(AppConstant.MCM_MEMBER_EMAIL_ID, emailIDString);
          contentValue.put(AppConstant.MCM_MEMBER_PASSWORD, passWordString);
         Log.e("Cotent value", "" + contentValue);

          try {

      SplashActivity.databaseHelper.insertInToTable(
      SplashActivity.databaseHelper.getWritableDatabase(),
                        AppConstant.MEMBER_TABLE_NAME,  
                            contentValue);
                    }

            catch (Exception e) {
        e.printStackTrace();
          }
       }
       }

这是我的json String

  

[{"成员Id":77,"客户端Id":37,"姓":"约翰""姓& #34;:"榕树""地址1":空,"地址2":空,"街道":空,"镇":无效,"市":无效,"县":无效,"国":无效,"国家":空"邮编":空,"移动":空," HomeTelephone":空," WorkTelephone":空," EMAILID& #34;:" jbunian@yahoo.com"," ConfirmEmailId":空,"密码":" 123""年龄":空,"性别":空,"职业":空," MartialStatus":空,"国籍":空"儿童":空," ChurchMembershipId":空," SecurityQuestion":空," SecurityAnswer":空," IsApproved& #34;:空," IsLockedOut":空," CREATEDATE":空," LastLoginDate":空," LastPasswordChangedDate":空, " LastLogOutDate":空," FailedPasswordAttemptDate":空," FailedPasswordAttemptWindowSt艺术":空," FailedPasswordAnswerAttemptCount":空," FailedPasswordAnswerAttemptWindowStart":空,"注释":空,"主动":空" IsAuthToApproveNewMember":空," Record_Created":空," Record_Updated":空," LastUpdated_LoginUserID":空," LastUpdated_WindowsUser& #34;:空," ClientAdminEmailId":空," EmailListForApproval":空," AppRegistrationStatus":空," MemberEmailMessage":空, " AdminEmailMessage":空," PhysicalDeviceId":空," DeviceOS":空," DeviceIdFromGCMorAPNS":空,"设备类型&# 34;:空}]

但是我的代码不会在这一行之后执行,因此我无法插入值。我已经加粗了日志,之后它没有执行。请告诉它为什么不执行?

1 个答案:

答案 0 :(得分:0)

问题是你试图从JSONObject获取值,但实际上它是JSON数组。 (json字符串以 [

开头

尝试做这样的事情:

      JSONArray jsonArray = new JSONArray(mesString);
      JSONObject jsonObject = jsonArray.get(0);
      insertTable.addRowforMemberTable(jsonObject.getString(RegistrationAppConstant.MEMBER_ID),
jsonObject.getString(RegistrationAppConstant.CLIENT_ID),
.....
.....