MySQL数据库存储日期Mindate(01/09/2017)和MaxDate(01/10/2017)。
这些日期需要在应用程序中收到并写入适当的calendarview属性。
帮助请优化并修复代码。
以下是代码。
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();
}
}
}
}
我通过执行形成JSON的PHP收到MySQL的日期。
我将感谢我在任务中的任何帮助!
您可以使用Android JsonArrayRequest
而不是异步类。这是射击的一部分:https://developer.android.com/training/volley/request.html
我认为这是标准JSON请求的推荐方法。
如果要评估代码并进行审核,则可以将其发布到此堆栈交换站点。代码评论堆栈交换