2017-09-30 18 views
2

MySQL數據庫存儲日期minDate(01/09/2017)和maxDate(01/10/2017)。
這些日期需要在應用程序中接收並寫入相應的CalendarView屬性。
請幫助請優化和修復代碼。
以下是代碼。代碼優化Android json和mysql

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(); 
      } 

     } 
    } 

} 

我從mysql接收日期,通過執行php形成JSON。
我會很感激任何幫助我的任務!

+0

_「修復代碼」_:出現什麼問題? – Jeff

+0

dp.setMinDate(minDateTime); - 以紅色突出顯示。 (Ctrl + F1) – idrees

回答