自定义多条件选择

效果如下:
比较简单
demo 地址https://github.com/xueliang0614/PopupWindow


















package com.example.demo;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;

import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity {

    @InjectView(R.id.tv)
    TextView tv;
    @InjectView(R.id.img)
    ImageView img;
    @InjectView(R.id.linearLayout1)
    LinearLayout linearLayout1;
    @InjectView(R.id.tv_2)
    TextView tv2;
    @InjectView(R.id.img_2)
    ImageView img2;
    @InjectView(R.id.linearLayout2)
    LinearLayout linearLayout2;
    @InjectView(R.id.tv_3)
    TextView tv3;
    @InjectView(R.id.img_3)
    ImageView img3;
    @InjectView(R.id.linearLayout3)
    LinearLayout linearLayout3;
    @InjectView(R.id.supplier_list_lv)
    ListView supplierListLv;
    private ArrayList<HashMap<String, String>> menudata_1=null;
    private ArrayList<HashMap<String, String>> menudata_2;
    private ArrayList<HashMap<String, String>> menudata_3;
    private ListView pop_lv=null;
    private PopupWindow popupWindow;
    private SimpleAdapter simpleAdapter_1=null;
    private SimpleAdapter simpleAdapter_2=null;
    private SimpleAdapter simpleAdapter_3=null;
    private int menu_index=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.inject(this);
        initData();
        iniPopWinodws();
    }

    private void iniPopWinodws() {
          //获取
        View popwin = View.inflate(MainActivity.this, R.layout.popwin_supplier_list, null);
       pop_lv = (ListView) popwin.findViewById(R.id.popwin_supplier_list_lv);
        popupWindow = new PopupWindow(popwin,LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
        popupWindow.setOutsideTouchable(true);
        popupWindow.setFocusable(true);
        popupWindow.setAnimationStyle(R.style.popwin_anim_style);
        popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {

            }
        });
        //设置底部点击popwINODS消失
        popwin.findViewById(R.id.popwin_supplier_list_bottom).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                  popupWindow.dismiss();
            }
        });
        //设置适配器
        simpleAdapter_1 = new SimpleAdapter(MainActivity.this, menudata_1, R.layout.item_listview_popwin, new String[]{"name"}, new int[]{R.id.listview_popwind_tv});
        simpleAdapter_2 = new SimpleAdapter(MainActivity.this, menudata_2, R.layout.item_listview_popwin, new String[]{"name"}, new int[]{R.id.listview_popwind_tv});
        simpleAdapter_3 = new SimpleAdapter(MainActivity.this, menudata_3, R.layout.item_listview_popwin, new String[]{"name"}, new int[]{R.id.listview_popwind_tv});
         //设置点击事件
        pop_lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                  popupWindow.dismiss();
                  switch (menu_index){
                       case  0:
                           String name = menudata_1.get(position).get("name");
                           tv.setText(name);
                           Anmaotion( img);
                           break;
                      case  1:
                          String names = menudata_2.get(position).get("name");
                          tv2.setText(names);
                          Anmaotion( img2);
                          break;
                      case  2:
                          String namess = menudata_3.get(position).get("name");
                          tv3.setText(namess);
                          Anmaotion( img3);
                          break;
                  }
            }
        });


    }

    private void initData() {
        String[] strings = {"水果","香蕉","房子"};
       menudata_1=new  ArrayList<>();
        HashMap<String,String> map=null;
        for(int i=0;i<strings.length;i++){
             map=new HashMap<>();
            map.put("name",strings[i]);
            menudata_1.add(map);
        }

        String[] str = {"够","养","主"};
        menudata_2=new  ArrayList<>();
        HashMap<String,String> map_2=null;
        for(int i=0;i<str.length;i++){
            map_2=new HashMap<>();
            map_2.put("name",str[i]);
            menudata_2.add(map_2);
        }

        String[] str_3 = {"那是","手动","sd"};
        menudata_3=new  ArrayList<>();
        HashMap<String,String> map_3=null;
        for(int i=0;i<str_3.length;i++){
            map_3=new HashMap<>();
            map_3.put("name",str_3[i]);
            menudata_3.add(map_3);
        }


    }

    @OnClick({R.id.linearLayout1,R.id.linearLayout2,R.id.linearLayout3})
    public void Onclick(View v){
        switch (v.getId()){
          case R.id.linearLayout1:
              pop_lv.setAdapter(simpleAdapter_1);
             // Animation rotateAnimation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);
              //img.startAnimation(rotateAnimation);


              Anmaotion( img);

              popupWindow.showAsDropDown(linearLayout1);
              menu_index=0;

            break;
            case R.id.linearLayout2:
                pop_lv.setAdapter(simpleAdapter_2);
                Anmaotion( img2);
                popupWindow.showAsDropDown(linearLayout2);
                menu_index=1;
                break;
            case R.id.linearLayout3:
                pop_lv.setAdapter(simpleAdapter_3);
                Anmaotion( img3);
                popupWindow.showAsDropDown(linearLayout3);
                menu_index=2;
                break;
        }

    }

    public void Anmaotion( View v){
        RotateAnimation rotateAnimation = new RotateAnimation(0f, 180f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        rotateAnimation.setFillAfter(true);// 设置保持动画最后的状态  
        rotateAnimation.setDuration(1000);// 设置动画时间  
        //rotateAnimation.setRepeatCount(-1);//设置重复次数
        v.startAnimation(rotateAnimation);
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值