下拉菜单
来源:互联网 发布:云豹直播系统源码 编辑:程序博客网 时间: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