1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/duanhong169-PickerView

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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

Добавьте в файл макета:

<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)));
2.2 Интеграция DivisionPickerView

Добавление в файл макета:

<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)));
2.3 Интеграция DateTimePickerView

Добавление в файл макета:

<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 )

Вы можете оставить комментарий после Вход в систему

Введение

Скролл-селектор Android (интерактивный выбор префектура-город-район, выбор даты, выбор времени). Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/duanhong169-PickerView.git
git@api.gitlife.ru:oschina-mirror/duanhong169-PickerView.git
oschina-mirror
duanhong169-PickerView
duanhong169-PickerView
master