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 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 okButtonClickedListeners = new ArrayList(); public void addOkButtonClickedListener(OkButtonClickedListener okButtonClickedListener) { this.okButtonClickedListeners.add(okButtonClickedListener); } }