xuxiuxi
2017-04-01 82d4647279193ef184a2a3d6b97b89555d82bb64
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SelectDialog.java
@@ -1,18 +1,21 @@
package cn.com.basic.face.dialog;
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.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.util.Constant;
import cn.com.basic.face.util.OkClickedListener;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
@@ -25,22 +28,38 @@
import cn.com.basic.face.discern.entity.Dictionary;
public class SelectDialog extends PopupWindow {
    private View view;
    @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();
    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) {
        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 +67,15 @@
        style.textSize = 16;
        style.holoBorderColor = Color.parseColor("#11c3e3");
        dialog_select_list_view.setWheelAdapter(new MyWheelAdapter(context));
        if(type == Constant.DialogSelectType.VISIT_REASON) {
            dialog_select_add_separator.setVisibility(View.VISIBLE);
            dialog_select_add.setVisibility(View.VISIBLE);
        }
        dialog_select_list_view.setWheelAdapter(new MyWheelAdapter(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);
        }
        dialog_select_list_view.setWheelSize(5);
        dialog_select_list_view.setBackgroundResource(R.color.colorBackground);
@@ -81,26 +105,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 +137,42 @@
        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;
        }
        dialog_select_title.setText(tile);
    }
    @OnClick(R.id.dialog_select_add)
    public void dialog_select_add_click(View view) {
        Toast.makeText(MainActivity.getInstance(), "添加", Toast.LENGTH_SHORT);
    }
    public static void setVisitReasonList(List visitReasonList) {
        SelectDialog.visitReasonList = visitReasonList;
    }
}