ShaiXuanPop.java 4.64 KB
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<String> 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<String> 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;
        }
    }


}