package com.shunzhi.parent.popu; import android.content.Context; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.PopupWindow; import android.widget.TextView; import com.huxq17.handygridview.HandyGridView; import com.share.mvpsdk.utils.DisplayUtils; import com.shunzhi.parent.R; import com.shunzhi.parent.popu.handygrid.TagView; import java.util.ArrayList; import java.util.List; /** * Created by ToaHanDong on 2018/3/15. */ public class ShaiXuanPop extends PopupWindow { HandyGridView handyGridView = null; List stringList = null; private Context mContext = null; MyGridAdapter myGridAdapter = null; TextView tvSubmit; public ShaiXuanPop(Context context) { mContext = context; View view = View.inflate(context, R.layout.popu_shaixuan, null); handyGridView = view.findViewById(R.id.handyGridView); tvSubmit=view.findViewById(R.id.tvSubmit); stringList = new ArrayList<>(); setWidth(WindowManager.LayoutParams.MATCH_PARENT); setHeight(WindowManager.LayoutParams.WRAP_CONTENT); setOutsideTouchable(true); setFocusable(true); setBackgroundDrawable(new BitmapDrawable()); setContentView(view); update(); tvSubmit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dismiss(); } }); } public void show(View parent) { showAsDropDown(parent); } public void setDatas(List strings) { if (null != stringList) { stringList.clear(); stringList.addAll(strings); } if (null == myGridAdapter) myGridAdapter = new MyGridAdapter(); if (null == handyGridView.getAdapter()) handyGridView.setAdapter(myGridAdapter); myGridAdapter.notifyDataSetChanged(); } private class MyGridAdapter extends BaseAdapter { private GridView mGridView; private boolean inEditMode = false;//设置是否可以编辑 public void setInEditMode(boolean inEditMode) { this.inEditMode = inEditMode; notifyDataSetChanged(); } @Override public int getCount() { return stringList.size(); } @Override public Object getItem(int i) { return stringList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View convertView, ViewGroup viewGroup) { if (mGridView == null) { mGridView = (GridView) viewGroup; } TagView textView; if (convertView == null) { textView = new TagView(mContext); convertView = textView; textView.setMaxLines(1); textView.setHeight(DisplayUtils.dp2px(30)); int id = mContext.getResources().getIdentifier("s_grid_item", "drawable", mContext.getPackageName()); Drawable drawable = mContext.getResources().getDrawable(id); textView.setBackgroundDrawable(drawable); textView.setTextColor(mContext.getResources().getColor(R.color.huodong_blue)); textView.setGravity(Gravity.CENTER); textView.setTag(false); } else { textView = (TagView) convertView; } textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { boolean isSelect = (boolean) view.getTag(); view.setTag(!isSelect); notifyDataSetChanged(); } }); boolean isSelect = (boolean) textView.getTag(); if (isSelect) { textView.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.shape_blue_select)); textView.setTextColor(mContext.getResources().getColor(R.color.white)); } else { textView.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.shape_blue_normal)); textView.setTextColor(mContext.getResources().getColor(R.color.huodong_blue)); } textView.showDeleteIcon(false); textView.setText(getItem(i).toString()); return convertView; } } }