Как получить активность вместо FragmentActivty? - PullRequest
0 голосов
/ 16 октября 2018

getActivity (kotlin: активность) внутри фрагмента дает мне FragmentActivity.Но теперь мне нужно Activity вместо FragmentActivity для конкретного слушателя, и невозможно привести его к Activity.

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Просто убедитесь, что вы передаете FragmentActivity, но не FragmentActivity?, или сделайте его необязательным в параметрах.Я объясню, почему, и вот пример:

// call somewhere in Fragment
 myFunc(activity)

Метод:

fun myFunc(activity: Activity?) {
    // doing smth
}

Мы устанавливаем Activity? как необязательный, поскольку класс фрагмента является классом Java иКотлин предположил, что это может быть нулем.(фрагмент сохраняет ссылку на активность как обнуляемую). Вот почему у вас есть исключение Type mismatch.

0 голосов
/ 16 октября 2018

Класс FragmentActivity расширяет класс Activity.

Поэтому, если для чего-либо требуется Activity, вы всегда можете просто передать ссылку на FragmentActivity.

Если ваш код все еще не работает, то это не проблема.Если это так, вам необходимо опубликовать дополнительную информацию, чтобы мы могли вам помочь.

...