类似美团的多条件筛选弹出框简单实现

最近项目需要一个页面有n个筛选条件。由于本人没有审美细胞,一开始就写了一个dialog,然后点击dialog中的item再弹出各个条件。。后来发现实在有点丑。。刚好看到美团上也有类似需求。于是就准备模仿美团上做一个把。
弹出框选择使用popupwindow。
一开始想到的就是左右两个listview。点击左边listview item改变右边的数据。
左右listview可以自定义radiobutton来实现。不过我两边都用了普通的textview。直接看代码:
实现来看popupwindow的布局文件:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#eee"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:background="#eee"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <ListView
            android:id="@+id/lv_parent"
            android:layout_width="match_parent"
            android:layout_height="match_parent">ListView>
    LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:background="#ddd"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <ListView
            android:id="@+id/lv_child"
            android:layout_width="match_parent"
            android:layout_height="match_parent">ListView>
    LinearLayout>

LinearLayout>

布局文件很简单,没什么好说的。
然后是数据源。自己写了一个叫Select的bean:

    public class Select {
    private String parent;
    private ArrayList childs;
    private boolean isCheck = false;

    public boolean isCheck() {
        return isCheck;
    }

    public void setIsCheck(boolean isCheck) {
        this.isCheck = isCheck;
    }

    public String getParent() {
        return parent;
    }

    public void setParent(String parent) {
        this.parent = parent;
    }

    public ArrayList getChilds() {
        return childs;
    }

    public void setChilds(ArrayList childs) {
        this.childs = childs;
    }
}

很简单就是左边菜单名字还有它包括的子菜单数据,isCheck用来判断是否被点击选中
最后开看自定义的popupwindow:

public class SelectPop extends PopupWindow {
    private ListView lvParent;
    private ListView lvChild;
    private ParentAdapter pAdapter;
    private ChildAdapter childAdapter;
    private List