У меня проблема с контекстом выбора даты (Android studio)

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

Обратитесь к этому API

Как вы объявили внутри прослушивателя onClick, используйте ActivityName.this в качестве контекста