TimePopWindow.java 3.37 KB
package com.sw.laryngoscope.popWindow;

import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;

import com.sw.laryngoscope.R;
import com.sw.laryngoscope.db.TimeInfoBean;
import com.sw.laryngoscope.utils.Logger;

import java.util.List;


public class TimePopWindow<T> extends PopupWindow {

    private static final String TAG = "SpinerPopWindow";

    private LayoutInflater inflater;
    private ListView mListView;
    private List<T> list;
    private MyAdapter mAdapter;
    private Context context;

    public TimePopWindow(Context context, List<T> list, OnItemClickListener
            clickListener) {
        super(context);
        inflater = LayoutInflater.from(context);
        this.list = list;
        this.context = context;
        init(clickListener);
    }

    public void setList(List<T> list) {
        this.list = list;
    }

    private void init(OnItemClickListener clickListener) {
        View view = inflater.inflate(R.layout.dialog_select_time, null);
        setContentView(view);
        setFocusable(true);

        //setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
        setWidth((int)context.getResources().getDimension(R.dimen.dp_x_315));
        setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);

        ColorDrawable dw = new ColorDrawable(0x00);
        setBackgroundDrawable(dw);
        mListView =  view.findViewById(R.id.select_listview);
        mAdapter = new MyAdapter();
        if (list != null) {
            mListView.setAdapter(mAdapter);
        }
        mListView.setOnItemClickListener(clickListener);
        mAdapter.notifyDataSetChanged();
    }

    private class MyAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            final TimeInfoBean info = (TimeInfoBean) list.get(position);
            ViewHodler hodler = null;
            if (convertView == null) {
                convertView = LayoutInflater.from(context).inflate(R.layout.item_select_time, null);
                hodler = new ViewHodler();
                hodler.textview = convertView.findViewById(R.id.textview);
                convertView.setTag(hodler);
            } else {
                hodler = (ViewHodler) convertView.getTag();
            }
            hodler.textview.setText(info.getTxt_cap());
            if ( info.isSel() ) {
                hodler.textview.setTextColor(
                        parent.getResources().getColor(R.color.color_0aede0));
            } else {
                hodler.textview.setTextColor(
                        parent.getResources().getColor(R.color.color_d8d8d8));
            }
            Logger.d("MyAdapter position ---- " + position);
            return convertView;
        }

        public class ViewHodler {
            TextView textview;
        }
    }

}