From ae5a02a4428be27d69c1fe8791ec83bce3827e80 Mon Sep 17 00:00:00 2001
From: chenke <chenke@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 09 八月 2017 13:07:06 +0800
Subject: [PATCH]
---
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SelectDialog.java | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 208 insertions(+), 26 deletions(-)
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SelectDialog.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SelectDialog.java
index 0fb07f1..ab753dc 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SelectDialog.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SelectDialog.java
@@ -3,21 +3,29 @@
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
+import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import android.widget.Toast;
import com.bsk.zhangbo.demoforbsk.R;
-import cn.com.basic.face.adapter.MyWheelAdapter;
-import cn.com.basic.face.util.OkButtonClickedListener;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.fragment.CheckInFragment;
+import cn.com.basic.face.service.DictionaryMng;
+import cn.com.basic.face.util.Constant;
+import cn.com.basic.face.util.OkClickedListener;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
-import com.wx.wheelview.widget.WheelView;
+import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter;
+import cn.com.basic.face.dialog.wheelview.widget.WheelView;
import java.util.ArrayList;
import java.util.List;
@@ -25,22 +33,52 @@
import cn.com.basic.face.discern.entity.Dictionary;
public class SelectDialog extends PopupWindow {
- private View view;
+ private final View parentView;
@ViewInject(R.id.dialog_select_title)
private TextView dialog_select_title;
- private List mList;
@ViewInject(R.id.dialog_select_list_view)
private WheelView dialog_select_list_view;
- public SelectDialog(Context context, List mList, String mTitle) {
- view = LayoutInflater.from(context).inflate(R.layout.dialog_select,null);
+ @ViewInject(R.id.dialog_select_add_separator)
+ private View dialog_select_add_separator;
+ @ViewInject(R.id.dialog_select_add)
+ private TextView dialog_select_add;
+
+ private List list = new ArrayList();
+
+ public static List visitorTypeList = new ArrayList();
+ public static List attenderTypeList = new ArrayList();
+ public static List genderList = new ArrayList();
+ public static List idTypeList = new ArrayList();
+ public static List visitReasonList = new ArrayList();
+ private static List<String> resolutionList = new ArrayList();
+ private static List<String> protocolList = new ArrayList();
+ private static List<String> cameraBrandList = new ArrayList();
+ private static List<String> departmentDictionaryList = new ArrayList();
+ private static List<String> postDictionaryList = new ArrayList();
+ private int type;
+
+ public static void setVisitorTypeList(List visitorTypeList) {
+ SelectDialog.visitorTypeList = visitorTypeList;
+ }
+
+ public static void setAttenderTypeList(List attenderTypeList) {
+ SelectDialog.attenderTypeList = attenderTypeList;
+ }
+
+ public static void setGenderList(List genderList) {
+ SelectDialog.genderList = genderList;
+ }
+
+ public static void setIdTypeList(List idTypeList) {
+ SelectDialog.idTypeList = idTypeList;
+ }
+
+ public SelectDialog(View parentView, int type, OkClickedListener okButtonClickedListener, String defaultValue) {
+ this.type = type;
+ this.parentView = parentView;
+ View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_select,null);
ViewUtils.inject(this, view);
- this.mList = mList;
- dialog_select_title = (TextView) view.findViewById(R.id.dialog_select_title);
- if (mTitle !=null && mTitle.length() > 0){
- dialog_select_title.setText(mTitle);
- }else {
- dialog_select_title.setText("鏍囬");
- }
+ setTitleAndList(type);
WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
style.selectedTextColor = Color.parseColor("#11c3e3");
style.textColor = Color.parseColor("#bcc6cf");
@@ -48,10 +86,30 @@
style.textSize = 16;
style.holoBorderColor = Color.parseColor("#11c3e3");
- dialog_select_list_view.setWheelAdapter(new MyWheelAdapter(context));
+ if(type == Constant.DialogSelectType.VISIT_REASON
+ || type == Constant.DialogSelectType.PROTOCOL
+ || type == Constant.DialogSelectType.RESOLUTION
+ || type == Constant.DialogSelectType.CAMERA_BRAND
+ ) {
+ dialog_select_add_separator.setVisibility(View.VISIBLE);
+ dialog_select_add.setVisibility(View.VISIBLE);
+ }
+
+ dialog_select_list_view.setWheelAdapter(new WheelAdapter(MainActivity.getInstance()));
dialog_select_list_view.setSkin(WheelView.Skin.Holo);
- if (mList != null && mList.size() > 0) {
- dialog_select_list_view.setWheelData(mList);
+ if (list != null && list.size() > 0) {
+ dialog_select_list_view.setWheelData(list);
+ Object itemObj = list.get(0);
+ if (itemObj instanceof String && defaultValue != null && !"".equals(defaultValue)) {
+ int selected = 0;
+ for (int i = 0; i < list.size(); i++) {
+ if (defaultValue.equals(list.get(i))) {
+ selected = i;
+ break;
+ }
+ }
+ dialog_select_list_view.setSelection(selected);
+ }
}
dialog_select_list_view.setWheelSize(5);
dialog_select_list_view.setBackgroundResource(R.color.colorBackground);
@@ -81,26 +139,28 @@
});
setOutsideTouchable(true);
- this.setContentView(this.view);
+ this.setContentView(view);
this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
this.setFocusable(true);
this.setBackgroundDrawable(new ColorDrawable(0x7f000000));
this.setAnimationStyle(R.style.PopupAnimation);
+ okButtonClickedListeners.add(okButtonClickedListener);
+ this.showAtLocation(parentView, Gravity.CENTER,0,0);
}
@OnClick(R.id.dialog_select_ok)
public void dialog_select_ok_click(View view) {
- for (OkButtonClickedListener okButtonClickedListener : okButtonClickedListeners) {
+ for (OkClickedListener okButtonClickedListener : okButtonClickedListeners) {
if (dialog_select_list_view.getCurrentPosition() >= 0) {
- Object o = mList.get(dialog_select_list_view.getCurrentPosition());
- String item = "";
+ Object o = list.get(dialog_select_list_view.getCurrentPosition());
+ String value = "";
if (o instanceof Dictionary) {
- item = ((Dictionary) o).getName();
+ value = ((Dictionary) o).getName();
} else {
- item = o+"";
+ value = o+"";
}
- okButtonClickedListener.onItemSelected(dialog_select_list_view.getCurrentPosition(), o, item);
+ okButtonClickedListener.onSelected(value);
}
}
dismiss();
@@ -111,10 +171,132 @@
dismiss();
}
- private List<OkButtonClickedListener> okButtonClickedListeners = new ArrayList<OkButtonClickedListener>();
+ private List<OkClickedListener> okButtonClickedListeners = new ArrayList<OkClickedListener>();
- public void addOkButtonClickedListener(OkButtonClickedListener okButtonClickedListener) {
+ public void addOkButtonClickedListener(OkClickedListener okButtonClickedListener) {
this.okButtonClickedListeners.add(okButtonClickedListener);
}
+ private void setTitleAndList(int type) {
+ String tile = "";
+ switch (type) {
+ case Constant.DialogSelectType.GENDER:
+ tile = "鎬у埆";
+ list = genderList;
+ break;
+ case Constant.DialogSelectType.ID_TYPE:
+ tile = "璇佷欢绫诲瀷";
+ list = idTypeList;
+ break;
+ case Constant.DialogSelectType.VISITOR_TYPE:
+ tile = "璁垮绫诲瀷";
+ list = visitorTypeList;
+ break;
+ case Constant.DialogSelectType.VISIT_REASON:
+ tile = "璇烽�夋嫨璁块棶浜嬬敱";
+ list = visitReasonList;
+ break;
+ case Constant.DialogSelectType.RESOLUTION:
+ tile = "璇烽�夋嫨鍒嗚鲸鐜�";
+ list = resolutionList;
+ break;
+ case Constant.DialogSelectType.PROTOCOL:
+ tile = "璇烽�夋嫨閫氳";
+ list = protocolList;
+ break;
+ case Constant.DialogSelectType.CAMERA_BRAND:
+ tile = "璇烽�夋嫨鎽勫儚鏈哄搧鐗�";
+ list = cameraBrandList;
+ break;
+ case Constant.DialogSelectType.DEPARTMENT:
+ tile = "璇烽�夋嫨閮ㄩ棬/鐝骇";
+ list = departmentDictionaryList;
+ break;
+ case Constant.DialogSelectType.POST:
+ tile = "璇烽�夋嫨鑱屽姟";
+ list = postDictionaryList;
+ break;
+ }
+ dialog_select_title.setText(tile);
+ }
+
+ @OnClick(R.id.dialog_select_add)
+ public void dialog_select_add_click(View view) {
+ dismiss();
+ Toast.makeText(MainActivity.getInstance(), "娣诲姞", Toast.LENGTH_SHORT);
+ new AddDialog(parentView, type, new OkClickedListener() {
+ public void onSelected(String value) {
+ CheckInFragment.getInstance().setVisitReasonText(value);
+ switch (type) {
+ case Constant.DialogSelectType.VISIT_REASON:
+ CheckInFragment.getInstance().setVisitReasonText(value);
+ break;
+ case Constant.DialogSelectType.RESOLUTION:
+ DictionaryMng.getInstance().addDictionary(Constant.DialogSelectType.RESOLUTION, CommonVariables.DictionaryType.RESOLUTION, value);
+ break;
+ case Constant.DialogSelectType.PROTOCOL:
+ DictionaryMng.getInstance().addDictionary(Constant.DialogSelectType.PROTOCOL, CommonVariables.DictionaryType.PROTOCOL, value);
+ break;
+ case Constant.DialogSelectType.CAMERA_BRAND:
+ DictionaryMng.getInstance().addDictionary(Constant.DialogSelectType.CAMERA_BRAND, CommonVariables.DictionaryType.CAMERA_BRAND, value);
+ break;
+ }
+ }
+ });
+ }
+
+ public static void setVisitReasonList(List visitReasonList) {
+ SelectDialog.visitReasonList = visitReasonList;
+ }
+
+ public static void setResolutionList(List<String> resolutionList) {
+ SelectDialog.resolutionList = resolutionList;
+ }
+
+ public static void setProtocolList(List<String> protocolList) {
+ SelectDialog.protocolList = protocolList;
+ }
+
+ public static void setCameraBrandList(List<String> cameraBrandList) {
+ SelectDialog.cameraBrandList = cameraBrandList;
+ }
+
+ public static void setDepartmentDictionaryList(List<String> departmentDictionaryList) {
+ SelectDialog.departmentDictionaryList = departmentDictionaryList;
+ }
+
+ public static void setPostDictionaryList(List<String> postDictionaryList) {
+ SelectDialog.postDictionaryList = postDictionaryList;
+ }
+
+
+ public static class WheelAdapter extends BaseWheelAdapter<String> {
+ private Context mContext;
+
+ public WheelAdapter(Context context) {
+ mContext = context;
+ }
+
+ @Override
+ protected View bindView(int position, View convertView, ViewGroup parent) {
+ ViewHolder viewHolder;
+ if (convertView == null) {
+ viewHolder = new ViewHolder();
+ convertView = LayoutInflater.from(mContext).inflate(R.layout.dialog_row, null);
+ viewHolder.textView = (TextView) convertView.findViewById(R.id.item_wheel_name);
+ convertView.setTag(viewHolder);
+ } else {
+ viewHolder = (ViewHolder) convertView.getTag();
+ }
+ viewHolder.textView.setText(mList.get(position)+"");
+ return convertView;
+ }
+
+ static class ViewHolder {
+ TextView textView;
+ }
+
+ }
+
+
}
--
Gitblit v1.8.0