我使用以下公式获得总时数:
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
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();
发生错误!异常错误:<brjava.lang.String类型的值无法转换为JSONObject。
<br
在四处搜索后,我重新创建表并将列更改为hours …之后,它可以正常工作