PopupWindow制作Spinner下拉列表
2016-05-31 13:45
375 查看
点击区域后,弹出开福区,天心区等。
![](https://img-blog.csdn.net/20160531134352643)
这是Activity所对应的XML布局
直接在需要显示的地方调用反法即可。
直接传递控件位置以及适配器
// 点击下拉框展示,显示地区列表 private void PopSite() { //使用布局注入器,注入一个布局,布局里面就一个ListView,并设置位置 View PopView = getLayoutInflater().inflate(R.layout.checkup_pop, null); pop_site = new PopupWindow(PopView, 287, 256, true); // 焦点设置,点击区域外消失参数必须为true pop_site.setFocusable(true); // 点击区域外消失必须设置此方法 pop_site.setBackgroundDrawable(new BitmapDrawable()); // 选择在那一个控件下面 pop_site.showAsDropDown(layout_site); //初始化Popup里面的ListView listview = (ListView) PopView.findViewById(R.id.pop_listview); listview.setAdapter(adapter); // 下拉列表item点击事件 listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub startActivity(new Intent(CheckUpActivity.this, CheckUpActivity.class)); if (null != pop_site && pop_site.isShowing()) { pop_site.dismiss(); } } }); }
这是Activity所对应的XML布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:orientation="vertical" > <include layout="@layout/title_bar_lay" /> <LinearLayout android:id="@+id/checkup_layou_site" android:layout_width="fill_parent" android:layout_height="38dp" android:background="@color/color_cccccc" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft=< a3ef span class="hljs-value">"49dp" android:text="区域" android:textColor="@color/color_333333" /> <ImageView android:id="@+id/checkip_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:background="@drawable/personnel_image1" /> </LinearLayout> <ListView android:id="@+id/checkup_prlistview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="none" ptr:ptrAnimationStyle="flip" ptr:ptrMode="both" > </ListView> </LinearLayout>
直接在需要显示的地方调用反法即可。
直接传递控件位置以及适配器
// 下拉列表显示框 private void PopSite(View control, Adapter adapter) { View PopView = getLayoutInflater().inflate(R.layout.upkeep_popup, null); popupwindow = new PopupWindow(PopView, control.getWidth(), 192, true); // 焦点设置,点击区域外消失参数必须为true popupwindow.setFocusable(true); // 点击区域外消失必须设置此方法 popupwindow.setBackgroundDrawable(new BitmapDrawable()); // 选择在某一个控件下面 popupwindow.showAsDropDown(control); listview = (ListView) PopView.findViewById(R.id.upkeep_pop_listview); listview.setAdapter((ListAdapter) adapter); // 下拉列表item点击事件 listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub startActivity(new Intent(UpKeepActivity.this, UpKeepActivity.class)); if (null != popupwindow && popupwindow.isShowing()) { popupwindow.dismiss(); } } }); }
相关文章推荐
- tomcat启动(设置catalina_home和不设置的区别)
- Linux如何查看进程、杀死进程、启动进程等常用命令
- Linux下进程的内存相关信息的查看
- Linux挂载移动硬盘
- 两台服务器如何互相做nginx负载均衡
- Linux环境使用make与Makefile实现进度条
- OpenCV区域提取之使用鼠标进行区域提取!
- Linux 内核自防护项目 KSPP
- linux 命令点滴记录(centos)
- 网站模板
- Linux下使用PHP连接SQL Server 2005
- linux后台运行程序
- 服务器架构演变之路学习
- 每日一linux命令(6)-------rmdir
- linux基本命令(48)——watch命令
- CentOS7.1 安装VMware Tools
- linux基本命令(47)——iostat命令
- CentOS下Mysql数据库的安装与配置以及遇到的问题及其解决方案
- Maven学习总结(11)——Maven Tomcat7自动部署
- 你的经验在欺骗你