Android拿来系列之各种弹框选择器(事件,日历)

1.职业/性别 选择器

 

①.摆中间的那种,看起来很随意的那种,有点丑那种
compile 'com.contrarywind:Android-PickerView:4.1.3'
 
 private ImageView image;
    private OptionsPickerView pvCustomOptions;
    private List zhiyeList=new ArrayList<>();

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        zhiyeList.add("杀猪的");
        zhiyeList.add("卖菜的");
        zhiyeList.add("吃黄瓜的");
        zhiyeList.add("拉皮条的");
        zhiyeList.add("跳大神的");
        image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                initCustomOptionPicker();
            }
        });

        setExitSharedElementCallback(new SharedElementCallback() {
            @Override
            public void onSharedElementEnd(List sharedElementNames, List sharedElements, List sharedElementSnapshots) {
                super.onSharedElementEnd(sharedElementNames, sharedElements, sharedElementSnapshots);
                Toast.makeText(MainActivity.this, "回来了", Toast.LENGTH_SHORT).show();
            }
        });
    }

    private void initView() {
        image = (ImageView) findViewById(R.id.image);
    }



    private void initCustomOptionPicker() {//条件选择器初始化,自定义布局
        /**
         * @description
         *
         * 注意事项:
         * 自定义布局中,id为 optionspicker 或者 timepicker 的布局以及其子控件必须要有,否则会报空指针。
         * 具体可参考demo 里面的两个自定义layout布局。
         */
        pvCustomOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
            @Override
            public void onOptionsSelect(int options1, int option2, int options3, View v) {
                //返回的分别是三个级别的选中位置
                Toast.makeText(MainActivity.this, ""+zhiyeList.get(options1), Toast.LENGTH_SHORT).show();
            }
        })
                .setLayoutRes(R.layout.custom_zhiye_select, new CustomListener() {
                    @Override
                    public void customLayout(View v) {
                        final TextView tvSubmit = (TextView) v.findViewById(R.id.tv_finish);
                        ImageView ivCancel = (ImageView) v.findViewById(R.id.iv_cancel);
                        tvSubmit.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                pvCustomOptions.returnData();
                                pvCustomOptions.dismiss();
                            }
                        });

                        ivCancel.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                pvCustomOptions.dismiss();
                            }
                        });

                    }
                })
                .isDialog(true)
                .build();

        pvCustomOptions.setPicker(zhiyeList);//添加数据
        pvCustomOptions.show();
    } 
  


需要个 xml
不要动,都粘,粘就对了

 




    

        

        

        

        
    

    
    

        

        

        
    



Android拿来系列之各种弹框选择器(事件,日历)_第1张图片
颜色都是自定义

 

 

 

②.躲底下的

OnOptionsSelectListener onOptionsSelectListener = new OnOptionsSelectListener() {
            @Override
            public void onOptionsSelect(int options1, int options2, int options3, View v) {
                Toast.makeText(MainActivity.this, "" + zhiyeList.get(options1), Toast.LENGTH_SHORT).show();
            }
        };
        OptionsPickerBuilder optionsPickerBuilder = new OptionsPickerBuilder(this, onOptionsSelectListener);
        final OptionsPickerView build = optionsPickerBuilder.build();
        optionsPickerBuilder.setLayoutRes(R.layout.custom_zhiye_select, new CustomListener() {
            @Override
            public void customLayout(View v) {
                //自定义布局中的控件初始化及事件处理
                final TextView tvSubmit = (TextView) v.findViewById(R.id.tv_finish);
                ImageView ivCancel = (ImageView) v.findViewById(R.id.iv_cancel);
                tvSubmit.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        pvCustomOptions.dismiss();
                    }
                });
                ivCancel.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        pvCustomOptions.dismiss();
                    }
                });

            }
        });
        build.setPicker(zhiyeList);
        image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                build.show();
            }
        }); 
  

 

Android拿来系列之各种弹框选择器(事件,日历)_第2张图片

 

 

3.时间选择器  安卓自带

 

Android拿来系列之各种弹框选择器(事件,日历)_第3张图片

ctrl+c

  final int DATE_DIALOG = 1;
    int mYear, mMonth, mDay;
    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case DATE_DIALOG:
                return new DatePickerDialog(this, mdateListener, mYear, mMonth, mDay);
        }
        return null;
    }


    private DatePickerDialog.OnDateSetListener mdateListener = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            mYear = year;
            mMonth = monthOfYear;
            mDay = dayOfMonth;
            display();
        }
    };
    /**
     * 设置日期 利用StringBuffer追加
     */
    public void display() {
        tvdate.setText(new StringBuffer().append(mYear).append("-").append(mMonth + 1).append("-").append(mDay).append(" "));
    }

//调用方法  手机的不太一样 不过都挺好

 showDialog(DATE_DIALOG);

4.地址选择器

https://github.com/crazyandcoder/citypicker

这里只能具体到区  你可以加详细地址...

现在这个pickerview  其实也有这个地址的 不过我就不用

//城市选择器
    compile 'liji.library.dev:citypickerview:3.1.8'
 
//申明对象
CityPickerView mPicker = new CityPickerView();
mPicker.init(this);

 

 private void selectCity() {
        //添加默认的配置,不需要自己定义
        CityConfig cityConfig = new CityConfig.Builder().build();
        mPicker.setConfig(cityConfig);

        //监听选择点击事件及返回结果
        mPicker.setOnCityItemClickListener(new OnCityItemClickListener() {
            @Override
            public void onSelected(ProvinceBean province, CityBean city, DistrictBean district) {
                tvdate.setText(province.getName() + city.getName() + district.getName());
            }

            @Override
            public void onCancel() {
            }
        });

        //显示
        mPicker.showCityPicker();
    }


OK
Android拿来系列之各种弹框选择器(事件,日历)_第4张图片

最后一个

 

compile 'com.github.loonggg:BottomSheetPopupDialog:v1.0'
maven { url "https://jitpack.io" }
View dialogView = LayoutInflater.from(this).inflate(R.layout.layout_bottom_shopdetail, null);
        ShareBottomPopupDialog shareBottomPopupDialog = new ShareBottomPopupDialog(this, dialogView);f
        shareBottomPopupDialog.showPopup(rela_bottom);

这个一般是activity 走完了 他才可以弹的



    

 

Android拿来系列之各种弹框选择器(事件,日历)_第5张图片

 

牛逼 不? 无私 不?

 


日期选择器

https://github.com/JZXiang/TimePickerDialog/blob/master/README-cn.md

 

github 关键字 timepick

你可能感兴趣的:(漫步CV路)