Эх сурвалжийг харах

1.修改Android Apex CRM日期选择。

Pen Li 7 жил өмнө
parent
commit
57b9e7c4ce

+ 33 - 2
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/dateTimePicker/DateTimePickerDialog.java

@@ -2,6 +2,7 @@ package com.usai.redant.rautils.dateTimePicker;
 
 import android.content.Context;
 import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Button;
@@ -63,6 +64,10 @@ public class DateTimePickerDialog extends BaseDialog {
         mContext = context;
     }
 
+    @Override
+    public void setTitle(@Nullable CharSequence title) {
+        mTitleTv.setText(title);
+    }
 
     public void setMode(DateTimePickerMode mode) {
         mMode = mode;
@@ -78,7 +83,6 @@ public class DateTimePickerDialog extends BaseDialog {
         View rootView = getRootView();
 
         mTitleTv = rootView.findViewById(R.id.ra_date_time_picker_title_tv);
-        mTitleTv.setText("请选择日期");
 
         LinearLayout loopPanel = rootView.findViewById(R.id.ra_date_time_picker_loop_panel);
         setupPicker(loopPanel);
@@ -164,7 +168,7 @@ public class DateTimePickerDialog extends BaseDialog {
                     // Date
                     mDatePicker = DatePickerView.buildDatePickerView(mContext, DatePickerView.DatePickerViewLayoutMode.DATE_PICKER_VIEW_LAYOUT_MODE_COMPACT);
                     LinearLayout.LayoutParams dateLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
-                    dateLayoutParams.setMargins(0,0,RAUtil.dp2px(mContext, 20), 0);
+                    dateLayoutParams.setMargins(0,0,RAUtil.dp2px(mContext, 5), 0);
                     panel.addView(mDatePicker, dateLayoutParams);
 
 
@@ -189,6 +193,33 @@ public class DateTimePickerDialog extends BaseDialog {
         super.show();
     }
 
+    public void setCalendar(Calendar calendar) {
+        if (calendar != null) {
+
+            if (mDatePicker != null) {
+                int year = calendar.get(Calendar.YEAR);
+                int month = calendar.get(Calendar.MONTH) + 1;
+                int day = calendar.get(Calendar.DAY_OF_MONTH);
+
+                mDatePicker.setYear(year);
+                mDatePicker.setMonth(month);
+                mDatePicker.setDay(day);
+            }
+
+            if (mTimePicker != null) {
+
+                int hour = calendar.get(Calendar.HOUR_OF_DAY);
+                int minute = calendar.get(Calendar.MINUTE);
+                int second = calendar.get(Calendar.SECOND);
+
+                mTimePicker.setHour(hour);
+                mTimePicker.setMinute(minute);
+                mTimePicker.setSecond(second);
+            }
+
+        }
+    }
+
     private static View setupRootView(Context context) {
 
         if (context == null) {

+ 42 - 2
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/MainActivity.java

@@ -44,6 +44,7 @@ import org.json.JSONObject;
 
 import java.io.File;
 import java.net.URL;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -704,9 +705,42 @@ public class MainActivity extends AppCompatActivity {
             if (msg != null) {
 
                 try {
-                    JSONObject json = new JSONObject(msg);
+                    final JSONObject json = new JSONObject(msg);
+
+                    String type = json.getString("type");
+                    String value = json.getString("value");
+                    String title = json.getString("title");
+
+                    String format = "MM/dd/YYYY";
+                    DateTimePickerDialog.DateTimePickerMode mode = DateTimePickerDialog.DateTimePickerMode.DATE_TIME_PICKER_MODE_DATE;
+
+                    type = "dateTime";
+                    value = "9/22/2008 14:44:24";
+
+                    if (type.equals("date")) {
+
+                    } else if (type.equals("time")) {
+
+                        format = "HH:mm:ss";
+                        mode = DateTimePickerDialog.DateTimePickerMode.DATE_TIME_PICKER_MODE_TIME;
 
-                    DateTimePickerDialog dialog = DateTimePickerDialog.dateTimePickerDialog(self, DateTimePickerDialog.DateTimePickerMode.DATE_TIME_PICKER_MODE_DATETIME ,new DateTimePickerDialog.DateTimePickerClickListener() {
+                    } else if (type.equals("dateTime")) {
+
+                        format = "MM/dd/yyyy HH:mm:ss";
+                        mode = DateTimePickerDialog.DateTimePickerMode.DATE_TIME_PICKER_MODE_DATETIME;
+                    }
+
+                    Calendar calendar = Calendar.getInstance();
+                    final SimpleDateFormat dateFormat = new SimpleDateFormat(format);
+                    try {
+                        Date date = dateFormat.parse(value);
+                        calendar.setTime(date);
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+
+
+                    DateTimePickerDialog dialog = DateTimePickerDialog.dateTimePickerDialog(self, mode ,new DateTimePickerDialog.DateTimePickerClickListener() {
                         @Override
                         public void dateTimePickerDialogCanceled(DateTimePickerDialog dateTimePickerDialog) {
 
@@ -715,9 +749,15 @@ public class MainActivity extends AppCompatActivity {
                         @Override
                         public void dateTimePickerDialogConfirmed(DateTimePickerDialog dateTimePickerDialog, Calendar calendar) {
 
+                            String dateStr = dateFormat.format(calendar.getTime());
+                            String js = mJSInterface.returnToWebPage(json, dateStr);
+                            evaluateJavaScript(js);
 
                         }
                     });
+                    dialog.setTitle(title);
+                    dialog.setCalendar(calendar);
+
                     dialog.show();
 
                 } catch (JSONException e) {

+ 1 - 0
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/RAWebView.java

@@ -121,6 +121,7 @@ public class RAWebView extends RelativeLayout {
 
             // 禁用缓存
             webSettings.setAppCacheEnabled(false);
+            webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
 
             hackWebJSMethod();
             hackWebURL();