下拉菜单

来源:互联网 发布:云豹直播系统源码 编辑:程序博客网 时间:2024/05/21 07:25

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity" >    <EditText        android:id="@+id/input"        android:layout_width="200dp"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_marginTop="10dp"        android:text="@string/hello_world" />    <ImageView         android:id="@+id/down_arrow"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@drawable/down_arrow"        android:layout_alignRight="@id/input"        android:clickable="true"        android:layout_marginTop="20dp"        /></RelativeLayout>

List_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:gravity="center_vertical"    android:orientation="horizontal"    tools:context=".MainActivity" >    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@drawable/user" />    <TextView        android:id="@+id/tv_list_item"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1"        android:gravity="center_horizontal"        android:text="@string/hello_world" />    <ImageView        android:id="@+id/delete"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@drawable/delete" /></LinearLayout>

MainActivity.class

public class MainActivity extends Activity {    private EditText input;    private ImageView downArrow;    private List<String> msgList;    private PopupWindow popWin;    private ListView listView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        input = (EditText) findViewById(R.id.input);        downArrow = (ImageView) findViewById(R.id.down_arrow);        msgList = new ArrayList<String>();        for (int i = 0; i < 20; i++) {            msgList.add("1000000000"+i);        }        initListView();        downArrow.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                System.out.println("=======");                //定义 popupWindow                popWin = new PopupWindow(MainActivity.this);                popWin.setWidth(input.getWidth()); //设置宽度                popWin.setHeight(200);  //设置popWin 高度                popWin.setContentView(listView); //为popWindow填充内容                popWin.setOutsideTouchable(true); // 点击popWin 以处的区域,自动关闭 popWin                popWin.showAsDropDown(input, 0, 0);//设置 弹出窗口,显示的位置            }        });    }    private void initListView() {        listView = new ListView(this);        listView.setBackgroundResource(R.drawable.listview_background); //设置listView 背景        listView.setDivider(null);  //设置条目之间的分隔线为null        listView.setVerticalScrollBarEnabled(false); // 关闭        listView.setAdapter(new MyListAdapter());    }    private class MyListAdapter extends BaseAdapter{        @Override        public int getCount() {            return msgList.size();        }        @Override        public Object getItem(int position) {            return position;        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(final int position, View convertView, ViewGroup parent) {            ViewHolder holder;            if(convertView == null){                convertView = View.inflate(getApplicationContext(), R.layout.list_item, null);                holder = new ViewHolder();                holder.delete = (ImageView) convertView.findViewById(R.id.delete);                holder.tv_msg =(TextView) convertView.findViewById(R.id.tv_list_item);                convertView.setTag(holder);            }else{                holder = (ViewHolder) convertView.getTag();            }            holder.tv_msg.setText(msgList.get(position));            holder.delete.setOnClickListener(new OnClickListener() {                @Override                public void onClick(View v) {                //删除对应的条目                    msgList.remove(position);                    //刷新listView                    MyListAdapter.this.notifyDataSetChanged();                }            });            convertView.setOnClickListener(new OnClickListener() {                @Override                public void onClick(View v) {                    //设置输入框                     input.setText(msgList.get(position));                    popWin.dismiss();                }            });            return convertView;        }        }    private class ViewHolder{        TextView tv_msg;        ImageView delete;    }}

这里写图片描述

0 0