关闭

PopupWindow制作Spinner下拉列表

标签: Spinner下拉列表pop
281人阅读 评论(0) 收藏 举报

点击区域后,弹出开福区,天心区等。
这里写图片描述

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

            }
        });

    }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3719次
    • 积分:178
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:6篇
    • 译文:0篇
    • 评论:0条