下拉选择框加listview删除

package com.downselect;

import java.util.ArrayList;

import android.R.array;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

    private EditText edittext;
    private ImageView select;

    private ArrayList<String> list = new ArrayList<String>();
    private ListView listview;
    private int popupheight=300;
    private PopupWindow popup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        initView();
        initListener();
        initData();
    }

    private void initView() {
        setContentView(R.layout.activity_main);
        edittext = (EditText) findViewById(R.id.edittext);
        select = (ImageView) findViewById(R.id.select);

    }

    private void initListener() {
        select.setOnClickListener(this);

    }

    private void initData() {

        for (int i = 0; i < 15; i++) {
            list.add(90000 + i + "");
        }

        initlistview();
    }

    
    private void initlistview(){
        listview = new ListView(this);
        listview.setBackgroundResource(R.drawable.timeline_card_bottom_background_highlighted);
        listview.setVerticalScrollBarEnabled(false);//不显示滚动条
        
        listview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
            
                edittext.setText(list.get(position));
                popup.dismiss();
            }
        });
        
        listview.setAdapter(new ListviewAdapter());
    }
    
    private void showselectlistview(){
        
    
        popup = new PopupWindow(listview, edittext.getWidth()
                , popupheight);
        
        popup.setFocusable(true);//让其中的view获取焦点
        //还必须设置背景图片
        popup.setBackgroundDrawable(new BitmapDrawable());
        popup.setOutsideTouchable(true);
        
        popup.showAsDropDown(edittext, 0, 0);
        
        
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.select:
            showselectlistview();
            break;

        default:
            break;
        }
    }
    
    
    class ListviewAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            final View view = convertView.inflate(MainActivity.this, R.layout.listitem, null);
            
            TextView text = (TextView) view.findViewById(R.id.text);
            
            ImageView iv_delect = (ImageView) view.findViewById(R.id.iv_delect);
            
            text.setText(list.get(position));
            
            iv_delect.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    list.remove(position);
                    notifyDataSetChanged();
                    
                    
                    int listheight=view.getHeight()*list.size();
                    popup.update(edittext.getWidth(), listheight>popupheight?
                            popupheight:listheight);
                    
                    if(list.size()==0){
                        popup.dismiss();
                        select.setVisibility(View.GONE);
                    }
                    
                }
            });
            
            
            return view;
        }
        
    }

}
原文地址:https://www.cnblogs.com/wangying222/p/5468254.html