PickerView的简单介绍
PickerView现在在大多数App都有使用到,例如设置时间的时候,或者选择地区的时候,使用PickerView来实现很实用,在底部弹出个对话框,接着进行选择就可以了,而且OptionsPickerView还支持三级联动,支持自定义布局等功能,接下来就简单的用代码实现一个小Demo:首先就是要添加依赖啦,具体的版本自己选择//实际引入请把"3.x"替换成具体版本号,最新版本号请以GitHub..
文章共1,737字 · 阅读需要大约6分钟
一键AI生成摘要,助你高效阅读
问答
·
PickerView现在在大多数App都有使用到,例如设置时间的时候,或者选择地区的时候,使用PickerView来实现很实用,在底部弹出个对话框,接着进行选择就可以了,而且OptionsPickerView还支持三级联动,支持自定义布局等功能,接下来就简单的用代码实现一个小Demo:
首先就是要添加依赖啦,具体的版本自己选择
//实际引入请把"3.x"替换成具体版本号,最新版本号请以GitHub上面提供的为准
implementation'com.contrarywind:Android-PickerView:3.x'
然后在布局中定义一个Button,然后为这个Button设置点击事件,定义数据,把数据加入到List中,我这边是根据时间来定义的,把数据写死了,也有其他更好的方法,可以问度娘
final List<String> options1Items = new ArrayList<>();
options1Items.add(getResources().getString(R.string.morning));
options1Items.add(getResources().getString(R.string.afternoon));
final List<String> options2Items = new ArrayList<>();
for (int i = 0; i <= 12; i++) {
if (i < 10) {
options2Items.add("0" + i);
} else {
options2Items.add(i + "");
}
}
final List<String> options3Items = new ArrayList<>();
for (int i = 0; i < 60; i++) {
if (i < 10) {
options3Items.add("0" + i);
} else {
options3Items.add(i + "");
}
}
接着就是重点了,构建一个OptionsPickerView
OptionsPickerView pvOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v) {
if (getResources().getString(R.string.monning_text).equals(options1Items.get(options1))){
text_12 =options2;
}else {
text_12 = 12 + options2;
}
//网络请求
getP().drinkWaterSetting(token, userId, "", "1", text_12 +
":"+options3Items.get(options3), "", "2");
Log.e("SHAN", "onOptionsSelect: " + userId );
showTs("添加成功");
}
})
//设置选中项文字颜色
.setTextColorCenter(getResources().getColor(R.color.black_333333))
//设置文字大小
.setContentTextSize(15)
//设置弹框的标题
.setTitleText(getResources().getString(R.string.set_time))
//设置点击其他区域取不取消弹窗
.setOutSideCancelable(false)
//设置取消文字的颜色
.setCancelColor(getResources().getColor(R.color.black_333333))
//设置确定文字的颜色
.setSubmitColor(getResources().getColor(R.color.black_333333))
//设置标题文字的颜色
.setTitleColor(getResources().getColor(R.color.black_333333))
.setSubCalSize(15)
.setTitleSize(18)
.build();
//这里要把数据Set进去
pvOptions.setNPicker(options1Items, options2Items, options3Items);
//最后一定要调用show方法,不然显示不出来
pvOptions.show();
代码大概就是这样,效果图如下,OptionsPickerView还有很多样式可以设置,比如自定义标题栏等等,这些我就不一一列举了,大家可以根据自己的需求去设计。
更多推荐
已为社区贡献1条内容
所有评论(0)