Android--下拉框

public class MyEdiSelect extends AppCompatActivity {

    private EditText et_main;
    private ImageView iv_main;
    private PopupWindow popupWindow;
    private ListView list;
    private  MyAdapter adapter;
    private String[] str={
            "one",
            "two",
            "three",
            "four"
    };
    private List<String> data;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_edi_select);


        data=new ArrayList<String>();
        et_main=(EditText)findViewById(R.id.et_main);
        iv_main=(ImageView)findViewById(R.id.iv_main);


        setStr();
        setList();


        iv_main.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(popupWindow==null){
                    popupWindow=new PopupWindow(MyEdiSelect.this);
                    //下拉框宽度
                    popupWindow.setWidth(et_main.getWidth());
                    //下拉框的高度
                    popupWindow.setHeight(500);
                    //设置内容
                    popupWindow.setContentView(list);
                    popupWindow.setFocusable(true);//设置焦点
                }
                //下拉框在et_main下面,相距0单位
                popupWindow.showAsDropDown(et_main, 0, 0);
            }
        });


        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String msg=data.get(position);
                et_main.setText(msg);
                if(popupWindow!=null&&popupWindow.isShowing()){
                    popupWindow.dismiss();
                    popupWindow=null;
                }
            }
        });


    }

	//将数据加入list里面
    private void setStr() {
        for(int i=0;i<str.length;i++){
            data.add(str[i]);
        }
    }
    //设置适配器
    private void setList() {
        adapter=new MyAdapter();
        list=new ListView(MyEdiSelect.this);
        list.setAdapter(adapter);
    }

	//适配器
    public class MyAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return data.size();
        }

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

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

        @Override
        public View getView(final int position, View convertView, final ViewGroup parent) {
            ViewHolder viewHolder;

            if(convertView==null){
                convertView=View.inflate(MyEdiSelect.this, R.layout.base_item, null);
                viewHolder=new ViewHolder();
                viewHolder.textView=convertView.findViewById(R.id.tv_item);
                viewHolder.imageView=convertView.findViewById(R.id.iv_item);
                convertView.setTag(viewHolder);
            }else {
                viewHolder= (ViewHolder) convertView.getTag();
            }

            final String s=data.get(position);

            viewHolder.imageView.setImageResource(R.drawable.jd);
            viewHolder.textView.setText(s);




            viewHolder.imageView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    data.remove(position);
                    adapter.notifyDataSetChanged();
                }
            });
            return convertView;

        }
    }

    static class ViewHolder{
        TextView textView;
        ImageView imageView;
    }
}
原创文章 158 获赞 2 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43616001/article/details/104736920