DatePickerDialog, вызванный счетчиком onClick

80
6

Я не могу найти что-либо на sof или google! поэтому мне нужна ваша помощь!
id нравится нажимать на мой (пустой) счетчик, поэтому я получаю диалоговое окно даты или времени. Я не могу найти что-нибудь, как с этим справиться. на данный момент это мои отрывки:


мои 2 объекта:


DatePickerDialog dDialog = new DatePickerDialog(this, (OnDateSetListener) this, 2012, 3, 3);

Spinner dSpinner = (Spinner) findViewById(R.id.spinner1);


xml:


 <Spinner
android:id="@+id/spinner1"
android:spinnerMode="dialog"
android:prompt="@string/hint_date"
android:layout_marginTop="40dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">

может быть, у вас есть идея, как справиться с этим. Я хочу выбрать дату, позвонить сборщику, onClick (что не возможно с прядильщиками?!) Я также попробовал onclicklisteners.

спросил(а) 2020-04-04T00:35:07+03:00 5 месяцев, 4 недели назад
1
Решение
72

Атрибут spinnerMode - это не то, что вы ищете. Чтобы показать, что DatePickerDialog, когда пользователь нажимает кнопку Spinner, вам нужно создать собственный виджет Spinner и переопределить метод performClick, который отвечает за отображение диалогового окна по умолчанию со значениями Spinner. Ниже приведен пример:


public class CustomSpinnerDialog extends Spinner {

// implement all the constructors

@Override
public boolean performClick() {
DatePickerDialog dDialog = new DatePickerDialog(getContext(),
new OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
Toast.makeText(getContext(), "Something",
Toast.LENGTH_SHORT).show();

}
}, 2012, 3, 3);
dDialog.show();
return false;
}

}

Тогда все, что вам нужно сделать, это использовать этот пользовательский Spinner в вашем макете.

ответил(а) 2020-04-04T00:48:15.695527+03:00 5 месяцев, 4 недели назад
57

Лучше всего это сделать, нажимая кнопку в стиль Spinner, как это сделано на экране "Контакты для контактов".

    <Button
android:id="@+id/date_view"
style="?android:attr/spinnerStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingLeft="12dip"
android:paddingStart="12dip" />

ответил(а) 2020-04-04T00:35:07+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема