PickerView 1. 添加依赖2. 集成到项目中 介绍
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. 集成到项目中
添加到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)));
添加到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"/>
构建省市区数据源:
设置数据源并监听选择事件
final List<DivisionModel> divisions = Divisions.get(this); divisionPicker.setDivisions(divisions); divisionPicker.setOnSelectedDateChangedListener(division -> textView.setText(Division.Helper.getCanonicalName(division)));
添加到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); } });
更详细的使用方法请参见示例。
PickerView 1. 添加依赖2. 集成到项目中 官网
https://github.com/duanhong169/PickerView
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。