浏览代码

添加时间段选择器

yanyi 7 年之前
父节点
当前提交
da6bb2ed1c

+ 14 - 2
README.md

@@ -7,7 +7,7 @@
 
      compile 'com.github.BenYanYi:DateSelect:1.0.2'
 
- #### project 下添加
+#### project 下添加
 
     allprojects {
         repositories {
@@ -18,6 +18,11 @@
         }
     }
     
+### 1.0.3版本
+
+    SelectPeriod添加是否进行时间判断
+    SelectPeriod(Context context, SelectType selectType, boolean judgmentTime)
+    
 ### 1.0.2版本
     SelectData selectData = new SelectData(this,selectType);
     
@@ -31,7 +36,14 @@
      NONE, HOUR, MIN  
      
      添加SelectPeriod(时间段选择,结束时间需大于开始时间,且不能大于当前时间)
-     用法和时间选择器一样(SelectData)
+     SelectPeriod selectPeriod = new SelectPeriod(mContext);
+     selectPeriod.showAtLocation(view, Gravity.BOTTOM, 0, 0);
+     selectPeriod.setOnDateClickListener(new SelectPeriod.OnDateClickListener() {
+         @Override
+         public void onDateClickListener(String startTime, String endTime) {
+                     
+         }
+     });
     
 ### 1.0.1版本
 ##### 带时间的选择器

+ 2 - 3
app/src/main/java/com/yanyi/dateselect/MainActivity.java

@@ -9,7 +9,6 @@ import android.view.Gravity;
 import android.view.View;
 
 import com.yanyi.datelib.SelectPeriod;
-import com.yanyi.datelib.config.SelectType;
 
 /**
  * @author Administrator
@@ -43,8 +42,8 @@ public class MainActivity extends AppCompatActivity {
     }
 
     private void select(View view) {
-        SelectPeriod selectPeriod = new SelectPeriod(mContext, SelectType.NONE);
-        selectPeriod.showAtLocation(view, Gravity.CENTER, 0, 0);
+        SelectPeriod selectPeriod = new SelectPeriod(mContext);
+        selectPeriod.showAtLocation(view, Gravity.BOTTOM, 0, 0);
         selectPeriod.setOnDateClickListener(new SelectPeriod.OnDateClickListener() {
             @Override
             public void onDateClickListener(String startTime, String endTime) {

+ 36 - 11
datelib/src/main/java/com/yanyi/datelib/SelectPeriod.java

@@ -33,6 +33,9 @@ public class SelectPeriod extends PopupWindow implements View.OnClickListener {
     private String TAG = "SelectPeriod";
     private Context mContext;
     private SelectType selectType;
+    private boolean boo;
+
+    public static boolean isDebug = true;
 
     private View mView;
 
@@ -98,13 +101,22 @@ public class SelectPeriod extends PopupWindow implements View.OnClickListener {
     private OnDateClickListener onDateClickListener;
 
     public SelectPeriod(Context context) {
-        this(context, SelectType.NONE);
+        this(context, SelectType.NONE, true);
+    }
+
+    public SelectPeriod(Context context, boolean judgmentTime) {
+        this(context, SelectType.NONE, judgmentTime);
     }
 
     public SelectPeriod(Context context, SelectType selectType) {
+        this(context, selectType, true);
+    }
+
+    public SelectPeriod(Context context, SelectType selectType, boolean judgmentTime) {
         super(context);
         this.mContext = context;
         this.selectType = selectType;
+        this.boo = judgmentTime;
         mView = View.inflate(context, R.layout.select_period_pop_layout, null);
         init();
         //设置SelectPicPopupWindow的View
@@ -609,18 +621,25 @@ public class SelectPeriod extends PopupWindow implements View.OnClickListener {
                 String startTimeStr = getStartTimeStr();
                 String endTimeStr = getEndTimeStr();
                 log(getStringDate());
-                if (TimeComparison(endTimeStr, getStringDate())) {
-                    if (TimeComparison(startTimeStr, endTimeStr)) {
-                        log(startTimeStr + "\t" + endTimeStr);
-                        onDateClickListener.onDateClickListener(startTimeStr, endTimeStr);
-                        dismiss();
+                if (boo) {
+                    if (TimeComparison(startTimeStr, getStringDate())) {
+                        if (TimeComparison(endTimeStr, getStringDate())) {
+                            if (TimeComparison(startTimeStr, endTimeStr)) {
+                                log(startTimeStr + "\t" + endTimeStr);
+                                onDateClickListener.onDateClickListener(startTimeStr, endTimeStr);
+                                dismiss();
+                            } else {
+                                toast("结束时间需要大于开始时间");
+                            }
+                        } else {
+                            toast("结束时间不能超过当前时间");
+                        }
                     } else {
-                        log("结束时间需要大于开始时间");
-                        Toast.makeText(mContext, "结束时间需要大于开始时间", Toast.LENGTH_SHORT).show();
+                        toast("开始时间不能超过当前时间");
                     }
                 } else {
-                    log("结束时间需要大于开始时间");
-                    Toast.makeText(mContext, "结束时间不能超过当前时间", Toast.LENGTH_SHORT).show();
+                    onDateClickListener.onDateClickListener(startTimeStr, endTimeStr);
+                    dismiss();
                 }
             }
         } else if (view == butCancel) {
@@ -798,7 +817,13 @@ public class SelectPeriod extends PopupWindow implements View.OnClickListener {
     }
 
     private void log(Object obj) {
-        Log.v(TAG, obj.toString());
+        if (isDebug){
+            Log.v(TAG, obj.toString());
+        }
+    }
+
+    private void toast(Object msg) {
+        Toast.makeText(mContext, msg.toString(), Toast.LENGTH_SHORT).show();
     }
 
     public void setOnDateClickListener(OnDateClickListener onDateClickListener) {

+ 2 - 1
datelib/src/main/res/layout/select_period_pop_layout.xml

@@ -2,8 +2,9 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/select_date"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="match_parent"
     android:background="#00000000"
+    android:gravity="bottom"
     android:orientation="vertical">
 
     <LinearLayout