我使用以下公式获得总时数:

 public void updateTotalHours()
    {
        int a = SplitTime(objMyCustomBaseAdapter.getFistTime());
        int b = SplitTime(objMyCustomBaseAdapter.getLastTime());
        long difference = 0;
        if (a > b) {
            difference = (b + (24 * 60) - a) - (1 * 60);
            int minutes = (int) (difference % 60);
            int hours = (int) ((difference / 60) % (24 * 60));
            totalHours.setText(("Total hours : " + hours + ":" + minutes));

        } else {
            difference = (b - a) - (1 * 60);
            int minutes = (int) (difference % 60);
            int hours = (int) ((difference / 60) % (24 * 60));
            totalHours.setText(("Total hours : " + hours + ":" + minutes));
        }
    }
        }


获得totalHours之后,我尝试将其转换为String并保存为MySQL

     TotalHours=totalHours.getText().toString();
      String[] time= TotalHours.split(":", 2);
   Toast.makeText(getApplicationContext(),time[1].trim(),Toast.LENGTH_LONG).show();
      addInformation(name, weather, date2, status, first1[1], last1[1],time[1]);


addInformation

 public class AddInfo extends AsyncTask<String, Void, ContentValues> {

        private final Context context;
        ProgressDialog loading;

        public AddInfo(Context context) {
            this.context = context;
        }

        private ContentValues handleActionSend(String name, String weather, String date2, String status, String timeIn, String timeOut, String hours) {
            ContentValues retour = new ContentValues();
            retour.put("success", false);

            try {
                HttpPost post = new HttpPost(Configs.ADD_INFORMATION);
                post.addHeader("Accept", "application/json");
                List<NameValuePair> postParams = new ArrayList<NameValuePair>();
                postParams.add(new BasicNameValuePair(Configs.KEY_USER_NAME, name));
                postParams.add(new BasicNameValuePair(Configs.KEY_WEATHER, weather));
                postParams.add(new BasicNameValuePair(Configs.KEY_DATE, date2));
                postParams.add(new BasicNameValuePair(Configs.KEY_STATUS, status));
                postParams.add(new BasicNameValuePair(Configs.KEY_TIMEIN, timeIn));
                postParams.add(new BasicNameValuePair(Configs.KEY_TIMEOUT, timeOut));
                postParams.add(new BasicNameValuePair(Configs.KEY_TOTALHOURS,hours));

                post.setEntity(new UrlEncodedFormEntity(postParams, HTTP.UTF_8));
                HttpClient client = new DefaultHttpClient();

                HttpResponse response = client.execute(post);

                BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

                StringBuilder result = new StringBuilder();
                String line;
                while ((line = rd.readLine()) != null) {
                    result.append(line);
                }

                JSONObject json = new JSONObject(result.toString());
                retour.put("success", true);
                retour.put("lastId", json.getInt("lastId"));
                //Log.e("AA",String.valueOf(json.getInt("lastId")));
            } catch (MalformedURLException e) {
                retour.put("message", "MalformedURLException Error: " + e.getLocalizedMessage());
            } catch (UnsupportedEncodingException e) {
                retour.put("message", "UnsupportedEncodingException Error: " + e.getLocalizedMessage());
            } catch (IOException e) {
                retour.put("message", "IOException Error: " + e.getLocalizedMessage());
            } catch (Exception e) {
                retour.put("message", "Exception Error: " + e.getLocalizedMessage());
            }
            return retour;
        }


        @Override
        protected ContentValues doInBackground(String... args) {

            //loading = ProgressDialog.show(context, "Please Wait", null, true, true);
            return handleActionSend(args[0], args[1], args[2], args[3], args[4], args[5],args[6]);
        }

        @Override
        protected void onPreExecute() {
            loading = ProgressDialog.show(context, "Please Wait", null, true, true);
        }

        @Override
        protected void onPostExecute(ContentValues contentValues) {
            super.onPostExecute(contentValues);
            if (contentValues != null) {
                loading.dismiss();
                String message;
                if (contentValues.getAsBoolean("success")) {
                    message = "Inserted successfully: " + contentValues.getAsString("lastId");
                    lastID = contentValues.getAsString("lastId");
                    Toast.makeText(getApplicationContext(), "D" + lastID, Toast.LENGTH_LONG).show();
                } else {
                    message = "An errorr has occured!\n" + contentValues.getAsString("message");
                }
                Toast.makeText(context, message, Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(), "No internet connection. Please try again", Toast.LENGTH_LONG).show();
            }
        }

    }

    public void addInformation(final String name, final String weather, final String date2, final String status, final String timeIn, final String timeOut, final String hours) {
        AddInfo ru = new AddInfo(this);
        ru.execute(name, weather, date2, status, timeIn, timeOut,hours);
    }


addInformation.php

<?php
require_once('dbConnect.php');
    if($_SERVER['REQUEST_METHOD']=='POST'){

        $response = array();

        //Getting values

        $name = $_POST['name'];
        $weather = $_POST['weather'];
        $date = $_POST['date'];
        $status = $_POST['status'];
        $timeIn = $_POST['timeIn'];
        $timeOut = $_POST['timeOut'];
        $hours = $_POST['totalHours'];

        print_r($hours);
        //Creating an sql query
        $sql = "INSERT INTO information(name, weather, date, status, time_in, time_out, total_hours) VALUES ('$name','$weather','$date', '$status', '$timeIn', '$timeOut', '$hours')";

        //Importing our db connection script
        require_once('dbConnect.php');

        //Executing query to database
        if(mysqli_query($con,$sql)){
            //echo 'Information Added Successfully';
            $insertId= mysqli_insert_id($con);
            $response["lastId"]=$insertId;
            echo json_encode($response);
        }else{
            echo 'Could Not Add Information';
        }

        //Closing the database
        mysqli_close($con);
    }
?>


所有数据都可以插入MySQL,只是total_hours始终为0。我想知道错误是否出自此行?

 TotalHours=totalHours.getText().toString();



  发生错误!异常错误:类型的值<br
  java.lang.String不能转换为JSONObject。

最佳答案

在此处搜索后,我重新创建表并将列更改为hours ...之后,它可以正常工作

08-16 19:01