From 7e7f99a8c753e7a2a70fd854a79bf75b861bdc66 Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期四, 25 五月 2017 17:45:47 +0800 Subject: [PATCH] --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SelectDialog.java | 211 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 185 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..b151048 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,45 @@ 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 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 int type; + + public static void setVisitorTypeList(List visitorTypeList) { + SelectDialog.visitorTypeList = visitorTypeList; + } + + 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 +79,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 +132,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 +164,116 @@ 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; + } + 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 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