PickerView 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
PickerView 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache
开发语言: Java
操作系统: Android
收录时间: 2018-07-17
提 交 者: 段弘

PickerView

Android滚动选择器(支持省市区联动选择、日期选择、时间选择)。

使用方法

1. 添加依赖

注:${latestVersion}请替换为当前最新版本号,见releases

gradle:

implementation 'com.github.duanhong169:picker-view:${latestVersion}'

maven:

<dependency>
	<groupId>com.github.duanhong169</groupId>
	<artifactId>picker-view</artifactId>
	<version>${latestVersion}</version>
	<type>pom</type>
</dependency>

2. 集成到项目中

2.1 集成PickerView

添加到layout文件中:

<top.defaults.view.PickerView
	android:id="@+id/pickerView"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"/>

使用列表作为数据源

List<Item> items = new ArrayList<>();
for (int i = 0; i < 42; i++) {
    items.add(new Item("Item " + i));
}

pickerView.setItems(Item.sampleItems(), item -> textView.setText(item.getText()));

实现Adapter作为数据源

配置数据源:

PickerView.Adapter adapter = new PickerView.Adapter() {

    @Override
    public int getItemCount() {
        return 42;
    }

    @Override
    public String getText(int index) {
        return "Item " + index;
    }
};
pickerView.setAdapter(adapter);

监听选择事件:

pickerView.setOnSelectedItemChangedListener((pickerView, previousPosition, selectedItemPosition) -> 
        textView.setText(pickerView.getAdapter().getText(selectedItemPosition)));

2.2 集成DivisionPickerView

添加到layout文件中:

<top.defaults.view.DivisionPickerView
    android:id="@+id/divisionPicker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:preferredMaxOffsetItemCount="4"
    android:background="#e7e7e7"/>

构建省市区数据源:

参考Divisions.java

设置数据源并监听选择事件

final List<DivisionModel> divisions = Divisions.get(this);
divisionPicker.setDivisions(divisions);
divisionPicker.setOnSelectedDateChangedListener(division -> textView.setText(Division.Helper.getCanonicalName(division)));

2.3 集成DateTimePickerView

添加到layout文件中:

<top.defaults.view.DateTimePickerView
    android:id="@+id/datePickerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:preferredMaxOffsetItemCount="3"
    app:textSize="18sp"
    app:type="dateTime"
    app:minutesInterval="fifteen"
    app:curved="true"
    android:background="#e7e7e7"/>

设置初始日期:

dateTimePickerView.setStartDate(Calendar.getInstance());
// 注意:月份是从0开始计数的
dateTimePickerView.setSelectedDate(new GregorianCalendar(2017, 6, 27, 21, 30));

监听选择事件:

dateTimePickerView.setOnSelectedDateChangedListener(new DateTimePickerView.OnSelectedDateChangedListener() {
    @Override
    public void onSelectedDateChanged(Calendar date) {
        int year = date.get(Calendar.YEAR);
        int month = date.get(Calendar.MONTH);
        int dayOfMonth = date.get(Calendar.DAY_OF_MONTH);
        int hour = date.get(Calendar.HOUR_OF_DAY);
        int minute = date.get(Calendar.MINUTE);
        String dateString = String.format(Locale.getDefault(), "%d年%02d月%02d日%02d时%02d分", year, month + 1, dayOfMonth, hour, minute);
        textView.setText(dateString);
        Log.d(TAG, "new date: " + dateString);
    }
});

更详细的使用方法请参见示例。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

PickerView 的相关资讯

还没有任何资讯

PickerView 的相关博客

PickerView可以滑动选择的pickerView工具类(转载)

package com.service.ybs.view; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java....

iOS开发之PickerView和DatePicker的简单使用

Picker View和Date Picker是iOS开发中很常用的两个空间,设置出生日期,选择国家城市省份以及性别啊等等,都会用都这两个控件...

当前选中行放大的PickerView

当前选中行放大的PickerView

Android-PickerView【仿iOS的PickerView控件,并封装了时间选择和选项选择这两种选择器】使用

版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本文主要演示Android-PickerView的选项选择器、时间选择器的简单...

iOS—使用picker View

iOS—使用picker View 一、实现效果 说明:点击随机按钮,能够自动选取,下方数据自动刷新。 二、实现思路 1.picker view的有...

iOS pickerView(所有类型一网打尽)

概述 关于PickView的所有类型都在这里 详细 代码下载:http://www.demodashi.com/demo/11017.html 首先看下项目的整体结构: ...

iOS开发UI篇—使用picker View控件完成一个简单的选餐应用

iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 一、实现效果   说明:点击随机按钮,能够自动选取,下方数据自动...

【纯代码】Swift-自定义PickerView单选(可修改分割线颜色、修改字体大小、修改字体颜色。)(可根据需要自己扩展)

typealias PopPickerViewCallBackClosure = (_ resultStr:NSString?) -> () class PopPickerView : UIView { var dism...

PickerView 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
3 收藏
分享
返回顶部
顶部