package cn.com.basic.face.dialog; import android.content.Context; import android.graphics.Color; 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 com.bsk.zhangbo.demoforbsk.R; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import java.util.ArrayList; import java.util.List; import cn.com.basic.face.base.BaseApplication; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter; import cn.com.basic.face.dialog.wheelview.widget.WheelView; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.fragment.VisitorRegisterFragment; import cn.com.basic.face.util.Constant; import cn.com.basic.face.util.OkClickedListener; import cn.com.basic.face.util.SurveillanceQueryItemUtil; import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil; import cn.com.basic.face.widget.surveilance.SurveillancePhotoSelectListView; import cn.com.basic.face.widget.surveilance.VisitorRegisterSelectPhotoListView; public class VisitorRegisterSelectPhotoDialog extends PopupWindow { private final View parentView; @ViewInject(R.id.dialog_surveillance_photo_select_list_view) private VisitorRegisterSelectPhotoListView dialog_surveillance_photo_select_list_view; public static long selectedId = -1; private boolean isShow = false; public static VisitorRegisterSelectPhotoDialog instance = new VisitorRegisterSelectPhotoDialog(); public static VisitorRegisterSelectPhotoDialog getInstance() { return instance; } public VisitorRegisterSelectPhotoDialog() { this.parentView = VisitorRegisterFragment.getInstance().get_fragment_visitor_register_linear_layout(); View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_visitor_register_select_photo_select,null); ViewUtils.inject(this, view); setTitleAndList(Constant.DialogSelectType.ID_TYPE); 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"); view.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { View popLayout = view.findViewById(R.id.dialog_add_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(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.PopupSlideAnimation); okButtonClickedListeners.add(new OkClickedListener() { @Override public void onSelected(String value) { } }); } @OnClick(R.id.dialog_add_ok) public void dialog_add_ok_click(View view) { for (OkClickedListener okButtonClickedListener : okButtonClickedListeners) { // okButtonClickedListener.onSelected(dialog_add_content.getText().toString()); } dismiss(); } @OnClick(R.id.dialog_add_cancel) public void dialog_add_cancel_click(View view) { dismiss(); } private List okButtonClickedListeners = new ArrayList(); public void addOkButtonClickedListener(OkClickedListener okButtonClickedListener) { this.okButtonClickedListeners.add(okButtonClickedListener); } private void setTitleAndList(int type) { String tile = ""; switch (type) { case Constant.DialogSelectType.VISIT_REASON_ADD: tile = "添加访问事由"; break; } // dialog_add_title.setText(tile); } public static void setVisitReasonList(List visitReasonList) { AddDialog.visitReasonList = visitReasonList; } public void show() { if (BaseApplication.getInstance().networkAvailable()) { dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId)); } else { dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId)); } if (this.isShowing()) { } else { //this.showAsDropDown(); this.showAtLocation(parentView, Gravity.BOTTOM,0,330); } isShow = true; } public void hide() { if (!isShow) { return; } if (this.isShowing()) { dismiss(); } else { } } public static class WheelAdapter extends BaseWheelAdapter { private Context mContext; public WheelAdapter(Context context) { mContext = context; } @Override protected View bindView(int position, View convertView, ViewGroup parent) { AddDialog.WheelAdapter.ViewHolder viewHolder; if (convertView == null) { viewHolder = new AddDialog.WheelAdapter.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 = (AddDialog.WheelAdapter.ViewHolder) convertView.getTag(); } viewHolder.textView.setText(mList.get(position)+""); return convertView; } static class ViewHolder { TextView textView; } } }