Android PickerView的简单使用
Posted 南千元
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android PickerView的简单使用相关的知识,希望对你有一定的参考价值。
PickerView简单使用
简介
PickerView,android滚动选择器。最近在学习过程中有些许经验,在此与大家分享。此控件在设置时间、选择地区等方面,对用户有较好的使用体验,并且易于实现使用方便。
导入依赖
implementation'com.contrarywind:Android-PickerView:4.1.9'
代码调用
PickerView可以不用在xml文件中增加控件,可以直接通过java代码进行使用。PickerView封装了两种选择器。
第一种:TimePickerView
时间选择器,以下代码节选自PickerView的Github仓库
TimePickerView pvTime = new TimePickerBuilder(this, new OnTimeSelectListener()
@Override
public void onTimeSelect(Date date, View v)
tv_pickerview.setText(getTime(date));
)
.setTimeSelectChangeListener(new OnTimeSelectChangeListener()
@Override
public void onTimeSelectChanged(Date date)
)
.setType(new boolean[]true, true, true, true, true, true)
.setItemVisibleCount(6)
.setLineSpacingMultiplier(2.0f)
.isAlphaGradient(true)
.build();
pvTime.show()
getTime()方法
private String getTime(Date date)
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(date);
效果图:
第二种:OptionsPickerView
可自定义的选择器,使用方法也很简单
首先:创建数据项,每个数据项为一个列表,每多定义一个项就要多嵌套一层
private final List<String> options1Items = new ArrayList<>();
private final List<List<String>> options2Items = new ArrayList<>();
private final List<List<List<String>>> options3Items = new ArrayList<>();
添加数据(重点)
private void initData()
//加入第一个列表数据
options1Items.add(getResources().getString(R.string.morning));
options1Items.add(getResources().getString(R.string.afternoon));
List<String> a = new ArrayList<>();
List<String> b = new ArrayList<>();
List<List<String>> c = new ArrayList<>();
//创建最后一个列表数据(分)
for (int i = 0; i < 60; i++)
if (i < 10)
a.add("0" + i + "分");
else
a.add(i + "分");
//创建第二个列表数据(时),同时将最后一个列表数据加入c,加入次数为第二个列表的大小
for (int i = 0; i <= 12; i++)
if (i < 10)
b.add("0" + i + "时");
else
b.add(i + "时");
c.add(a);
//将第二个列表数据加入options2Itmes,加入次数为options1Items的大小
for (int j = 0; j < options1Items.size(); j++)
options2Items.add(b);
//将第三个列表数据加入options3Items,加入次数为第二个列表数据的长度
for (int i = 0; i < b.size(); i++)
options3Items.add(c);
通过show()方法来控制显示
OptionsPickerView pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener()
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v)
String date = options1Items.get(options1) + " " + options2 + "时 " + options3 + "分";
//在此获取选择到的内容
)
.setTitleText("选择时间")
.setContentTextSize(16)
.build();
pvOptions.setPicker(options1Items, options2Items, options3Items);
pvOptions.show();
效果图:
最后
OptionsPickerView相对与TimePickerView来说麻烦一点,但是却有很大的调节空间,添加数据的感觉就像是数据结构中的树结构一样,由第一个列表的大小决定一开始有多少点,在每个点上又有各自的分叉,但是分叉的数量却是由开发者自行定义,对于地区选择来说,感觉会更明显。
以上是关于Android PickerView的简单使用的主要内容,如果未能解决你的问题,请参考以下文章
基于Android-PickerView的三级联动城市选择器使用
Android模拟iOS的PickerView并且附带全国所有省城市地区三级目录