package com.ttj.view; import java.util.List; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText; import android.widget.ListView; import android.widget.PopupWindow; import android.widget.PopupWindow.OnDismissListener; import android.widget.TextView; import com.ttj.R; import com.ttj.adapter.Attr_ListAdapter; import com.ttj.bean.GoodsInfoBean; import com.ttj.utils.ToastUtil; /** * 宝贝详情界面的弹窗 */ @SuppressLint("CommitPrefEdits") public class CollectPopWindow implements OnDismissListener, OnClickListener { private TextView pop_text_add, pop_text_reduction, pop_text_ok, pop_text_cancle; private EditText pop_edit_num; private PopupWindow popupWindow; private OnItem2ClickListener listener; private int defaultNum = 1; private Context context; private ListView lv_GoodsAttr; private String attrId; public static int posi = -1; private Attr_ListAdapter adapter; private View darkView; public CollectPopWindow(final Context context, final List<GoodsInfoBean.attrBean> list, View dark) { this.context = context; this.darkView = dark; posi = -1; View view = LayoutInflater.from(context).inflate( R.layout.p2_pop_collect_layout, null); pop_text_add = (TextView) view.findViewById(R.id.pop_add); pop_text_reduction = (TextView) view.findViewById(R.id.pop_reduce); pop_text_ok = (TextView) view.findViewById(R.id.pop_ok); pop_text_cancle = (TextView) view.findViewById(R.id.pop_cancle); pop_edit_num = (EditText) view.findViewById(R.id.pop_num); lv_GoodsAttr = (ListView) view.findViewById(R.id.lv_goods_attr); popupWindow = new PopupWindow(view, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); // 设置popwindow的动画效果 popupWindow.setAnimationStyle(R.style.popWindow_anim_style); popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); popupWindow.setOnDismissListener(this);// 当popWindow消失时的监听 pop_edit_num.setText(defaultNum + ""); pop_text_add.setOnClickListener(this); pop_text_reduction.setOnClickListener(this); pop_text_ok.setOnClickListener(this); pop_text_cancle.setOnClickListener(this); pop_edit_num.setSelection(pop_edit_num.getText().length()); adapter = new Attr_ListAdapter(context, list); lv_GoodsAttr.setAdapter(adapter); lv_GoodsAttr.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) { if (list.get(arg2).getIsDefect() == 0) { posi = arg2; attrId = list.get(arg2).getTGoodsPropertyID(); } else { posi = -1; attrId = ""; ToastUtil.show(context, "抱歉,该商品暂时缺货", 500); } adapter.notifyDataSetChanged(); } }); popupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED); popupWindow .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); } public void setOnDismissListener(OnDissMiss dissMiss) { } public interface OnDissMiss { public void onMiss(); } public interface OnItem2ClickListener { /** 设置点击确认按钮时监听接口 */ public void onClickOKPop(int defaultNum, String attrId); public void onCanclePop(); } /** 设置监听 */ public void setOnItem2ClickListener(OnItem2ClickListener listener) { this.listener = listener; } // 当popWindow消失时响应 @Override public void onDismiss() { darkView.setVisibility(View.GONE); } /** 弹窗显示的位置 */ public void showAsDropDown(View parent) { popupWindow.showAtLocation(parent, Gravity.BOTTOM, 0, 0); popupWindow.setFocusable(true); popupWindow.setOutsideTouchable(true); popupWindow.update(); } /** 消除弹窗 */ public void dissmiss() { popupWindow.dismiss(); } @Override public void onClick(View v) { if (v == pop_text_add) { defaultNum++; pop_edit_num.setText(defaultNum + ""); } else if (v == pop_text_reduction) { if (defaultNum == 1) { ToastUtil.show(context, "最少一件哦,亲", 500); return; } defaultNum--; pop_edit_num.setText(defaultNum + ""); } else if (v == pop_text_ok) { defaultNum = Integer.parseInt(pop_edit_num.getText().toString()); listener.onClickOKPop(defaultNum, attrId); dissmiss(); } else if (v == pop_text_cancle) { listener.onCanclePop(); dissmiss(); } } }