В MySql Хранится дата minDate(20/01/2017) и maxDate(20/02/2017).
Эти даты необходимо получить в приложение и записать в соответствующие места CalendarView.
Помогите пожалуйста довести до ума!
Вот, что получилось у меня. Думаю, что тут много лишнего и кривого.
package com.androidjson.idrees_androidjsoncom;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.format.DateUtils;
import android.view.View;
import android.widget.CalendarView;
import android.widget.DatePicker;
import android.widget.Spinner;
import android.widget.TextView;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.JsonArrayRequest;
import android.widget.Button;
import android.content.Context;
import android.os.AsyncTask;
import org.apache.http.HttpResponse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.content.Intent;
public class RecordActivity extends AppCompatActivity {
HttpResponse httpResponse;
Button button;
TextView textView;
CalendarView mCalendarView;
JSONObject jsonObject = null;
String StringHolder = "";
// Добавление URL-адреса HTTP-сервера в строковую переменную.
String HttpURL = "http://localhost/date_min_max.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);
textView = (TextView) findViewById(R.id.textView);
mCalendarView = (CalendarView) findViewById(R.id.calendarView);
// Вызов метода GetDataFromServerIntoTextView для установки данных JSon MySQL в TextView.
new GetDataFromServerIntoTextView(RecordActivity.this).execute();
}
// Объявление метода GetDataFromServerIntoTextView с помощью AsyncTask.
public class GetDataFromServerIntoTextView extends AsyncTask<Void, Void, Void> {
// Объявление CONTEXT.
public Context context;
public GetDataFromServerIntoTextView(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
HttpClient httpClient = new DefaultHttpClient();
// Добавление HttpURL к моему объекту HttpPost.
HttpPost httpPost = new HttpPost(HttpURL);
try {
httpResponse = httpClient.execute(httpPost);
StringHolder = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
// Передача переменной владельца строки в JSONArray.
JSONArray jsonArray = new JSONArray(StringHolder);
jsonObject = jsonArray.getJSONObject(0);
String minDateString = jsonArray.getJSONObject(0).getString("minDate");
String maxDateString = jsonArray.getJSONObject(0).getString("maxDate");
// Парсим дату
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
Date minDate = formatter.parse(minDateString);
Date maxDate = formatter.parse(maxDateString);
// Получаем время
long minDateTime = minDate.getTime();
long maxDateTime = maxDate.getTime();
// Как-то инициализируете и работаете с этим
CalendarView dpd;
CalendarView dp = mCalendarView;
// Устанавливаем даты
dp.setMinDate(minDateTime);
dp.setMaxDate(maxDateTime);
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Автоматически генерируемый блок catch
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void result) {
try {
// Добавление строки JSOn в textview после завершения загрузки.
textView.setText(jsonObject.getString("minDate"));
} catch (JSONException e) {
// TODO Автоматически генерируемый блок catch
e.printStackTrace();
}
}
}
}
Вот из этого php получаю даты:
<?php
include 'dbconfig.php';
// Создать соединение
$con = new mysqli($sname, $uname, $pass, $dbname);
$con->set_charset('utf8');
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}
$sql = "SELECT
DATE_FORMAT(MIN(dt.DATE_TIME),'%m/%d/%Y') AS minDate,
DATE_FORMAT(MAX(dt.DATE_TIME),'%m/%d/%Y') AS maxDate
FROM rd.dt";
$result = $con->query($sql);
if ($result->num_rows > 0) {
// выводим данные каждой строки
while ($row[] = $result->fetch_assoc()) {
$tem = $row;
$json = json_encode($tem);
}
} else {
echo "0 results";
}
echo $json;
$con->close();
?>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть 2 сайта с формами поиска информации, мой и чужой, на чужом стоит recaptcha в форме поиска (аякс запрос на скрипт)Требуется с чужого спарсить...
Подскажите, пожалуйста, можна-ли расшарить web-проэкт, работающий через localhost open server, с помощью переадресации портов на маршрутизаторе?