#android #android-studio #android-fragments #datepicker
#Android #android-studio #android-фрагменты #выбор даты
Вопрос:
у меня проблема с DatePickerDialog
тем, что я хочу выбрать контекст для него, но я не знаю, я пробовал v для просмотра в своем классе, но это не сработало, я тоже пробовал getContext()
и не работал
@Override
public void onClick(View view) {
DatePickerDialog datePickerDialog = new DatePickerDialog(
context here1 ?,
android.R.style.Theme_Holo_Light_Dialog_MinWidth,
null,year,
month[0],day);
datePickerDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
datePickerDialog.show();
}
Комментарии:
1. если вы показываете
DatePickerDialog
фрагмент, попробуйтеgetActivity()
контекст2. большое вам спасибо, это сработало, но почему вы можете это объяснить?
3. конечно, добавил это в качестве ответа
Ответ №1:
если вы показываете DatePickerDialog
во фрагменте, то передайте getActivity()
context
, поскольку getActivity()
возвращает действие, связанное с фрагментом, а действие является контекстом (поскольку действие расширяет контекст).
и если вы показываете DatePickerDialog
активность, тогда передайте YourActivty.this
Ответ №2:
Если вы используете min-sdk <24, вам нужно аннотировать метод с помощью @RequiresApi(api = Build .VERSION_CODES.N), поскольку он доступен с Android N. Если вы хотите поддерживать более старые версии, используйте другой конструктор, поддерживаемый API 1.
DatePickerDialog b = new DatePickerDialog(TestActivity.this,
android.R.style.Theme_Holo_Light_Dialog_MinWidth,
null,
2020,
10,
16);
Как вы объявили внутри прослушивателя onClick, используйте ActivityName.this
в качестве контекста