Проблема с ArrayAdapter spiner

Написал такой код:

import android.widget.ArrayAdapter

//Блок кода//

val values : Array<String> = arrayOf("USD", "UAH", "GBD", "EUR", "BIT", "RUB")
val adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, values)

Однако IDE выдаёт ошибку

None of the following functions can be called with the arguments supplied.

<init>(Context, Int, Array<(out) TypeVariable(T)!>)
  where T = TypeVariable(T) for 
  constructor ArrayAdapter<T : Any!>(context: Context, resource: Int, objects: Array<(out) T!>) defined in android.widget.ArrayAdapter
<init>(Context, Int, Int)
  where T = TypeVariable(T) for 
  constructor ArrayAdapter<T : Any!>(context: Context, resource: Int, textViewResourceId: Int) defined in android.widget.ArrayAdapter
<init>(Context, Int, (Mutable)List<TypeVariable(T)!>)
  where T = TypeVariable(T) for 
  constructor ArrayAdapter<T : Any!>(context: Context, resource: Int, objects: (Mutable)List<T!>) defined in android.widget.ArrayAdapter Alt+Shift+Enter Alt+Enter

Можете подсказать в чём тут дело.


Ответы (1 шт):

Автор решения: Sergei Buvaka

Если у вас HomeFragment является this, то вам необходимо это заменить на requireActivity() или requireContext().

Fragment в отличии от активити не наследуется от класса Context, а значит не может быть передан в аргументы в качестве контекста. Приведенные выше 2 метода как раз дают возможность получить контекст внутри любого Fragment-а

→ Ссылка