在软件开发中我们会需要各种选择器,比如设置年龄时需要使用时间选择器。设置地址需要用到地址选择,还有身高等等。

citypicker.png

下面介绍一下使用方法:

  1. 时间选择器的使用:

    //这里设置的是选择之后可以回显数据,所以先创建一个SP设置基本数值
    String string = getSharedPreferences("tag", MODE_PRIVATE).getString("date", "40#0#0");
    String[] split = string.split("#");
    String s = split[0];
    String s1 = split[1];
    String s2 = split[2];
    //分割之后得到的并不是具体的时间,而是年,月,日的位置。
    int i1 = Integer.parseInt(s);
    int i2 = Integer.parseInt(s1);
    int i3 = Integer.parseInt(s2);
    //这里直接创建 DatePickerDialog,同时把值传递给构造方法
    DatePickerDialog.Builder builder=new DatePickerDialog.Builder(this,i1,i2,i3);
    //通过builder设置时间
    DatePickerDialog dialog=builder.setOnDateSelectedListener(new DatePickerDialog.OnDateSelectedListener() {

    @Override
    public void onDateSelected(int[] dates) {
        Toast.makeText(getApplicationContext(), dates[0] + "#" + dates[1] + "#" + dates[2], Toast.LENGTH_SHORT).show();
    }
    
    @Override
    public void setCurrentItem(int positionYear, int positionMonth, int positionDay) {
        //设置完成时间之后,保存数据。用于下次回显数据。
        getSharedPreferences("tag",MODE_PRIVATE).edit().putString("date",positionYear+"#"
      +positionMonth+"#"+positionDay).commit();
    }

    }).create();
    //最后显示Dialog
    dialog.show();

  2. 设置省市联动的选择器:

    RegionPickerDialog.Builder builder = new RegionPickerDialog.Builder(this);
    RegionPickerDialog dialog = builder.setOnRegionSelectedListener(new RegionPickerDialog.OnRegionSelectedListener() {

     @Override
     public void onRegionSelected(String[] cityAndArea) {
         Toast.makeText(getApplicationContext(), cityAndArea[0] + "#" + cityAndArea[1], Toast.LENGTH_SHORT).show();
     }

    }).create();

    dialog.show();

timepicker.png
highpicker.png

具体添加包的方法

dependencies {

compile 'zh.MyLibrary.dialog_picker:dialog_picker:0.1.0'

}

源码地址 https://github.com/zhanghangc...

如果感觉好用的话请给个star,谢谢。


张航
10 声望1 粉丝

现居东京的程序猿