xuxiuxi
2017-04-01 3ba02088330d961fb8f65679eb76c98dc05da9a5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package cn.com.basic.face.dialog;
 
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
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 com.bsk.zhangbo.demoforbsk.R;
import cn.com.basic.face.adapter.MyWheelAdapter;
import cn.com.basic.face.util.OkButtonClickedListener;
 
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 java.util.ArrayList;
import java.util.List;
 
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);
        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("标题");
        }
        WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
        style.selectedTextColor = Color.parseColor("#11c3e3");
        style.textColor = Color.parseColor("#bcc6cf");
        style.selectedTextSize = 22;
        style.textSize = 16;
        style.holoBorderColor = Color.parseColor("#11c3e3");
 
        dialog_select_list_view.setWheelAdapter(new MyWheelAdapter(context));
        dialog_select_list_view.setSkin(WheelView.Skin.Holo);
        if (mList != null && mList.size() > 0) {
            dialog_select_list_view.setWheelData(mList);
        }
        dialog_select_list_view.setWheelSize(5);
        dialog_select_list_view.setBackgroundResource(R.color.colorBackground);
        dialog_select_list_view.setStyle(style);
 
        view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
            View popLayout = view.findViewById(R.id.dialog_select_linear_layout);
            int top = popLayout.getTop();
            int bottom = popLayout.getBottom();
            int left = popLayout.getLeft();
            int right = popLayout.getRight();
            int y = (int) motionEvent.getY();
            int x = (int) motionEvent.getX();
            if (motionEvent.getAction() == MotionEvent.ACTION_UP){
                if (y<top || y> bottom){
                    dismiss();
                }
                if (x < left || x > right){
                    dismiss();
                }
 
            }
            return true;
            }
        });
 
        setOutsideTouchable(true);
        this.setContentView(this.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);
    }
 
    @OnClick(R.id.dialog_select_ok)
    public void dialog_select_ok_click(View view) {
        for (OkButtonClickedListener okButtonClickedListener : okButtonClickedListeners) {
            if (dialog_select_list_view.getCurrentPosition() >= 0) {
                Object o = mList.get(dialog_select_list_view.getCurrentPosition());
                String item = "";
                if (o instanceof Dictionary) {
                    item = ((Dictionary) o).getName();
                } else {
                    item = o+"";
                }
                okButtonClickedListener.onItemSelected(dialog_select_list_view.getCurrentPosition(), o, item);
            }
        }
        dismiss();
    }
 
    @OnClick(R.id.dialog_select_cancel)
    public void dialog_select_cancel_click(View view) {
        dismiss();
    }
 
    private List<OkButtonClickedListener> okButtonClickedListeners = new ArrayList<OkButtonClickedListener>();
 
    public void addOkButtonClickedListener(OkButtonClickedListener okButtonClickedListener) {
        this.okButtonClickedListeners.add(okButtonClickedListener);
    }
 
}