PickerView
Android-слайдер для выбора.
Обратите внимание: ${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>
Добавьте в файл макета:
<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()));
Настройка источника данных:
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)));
Добавление в файл макета:
<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)));
Добавление в файл макета:
<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);
}
});
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )