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();
}
}
}