您的位置:首页 > 运维架构

PopupWindow制作Spinner下拉列表

2016-05-31 13:45 375 查看
点击区域后,弹出开福区,天心区等。



// 点击下拉框展示,显示地区列表
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();
}

}
});

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: