Но смысл кидать целый объект активити, если ты можешь таким же образом прокинуть туда контекст?

|
MaxSiominDev 2022-06-26 22:24:24
Ни одного человека тут не смутило что он запускает фрагмент через интент блять?
creeksoncreeks 2022-06-26 22:28:02
тебе нужен (не нужен, читай доку фрагментов, но все же) контекст

requireActivity отдает тебе FragmentActivity, в которой есть контекст

но смысл кидать целый объект активити, если ты можешь таким же образом прокинуть туда контекст?

просто не относись к этому как к магическому методу, с которым все работает

Panic_Berlin 2022-06-26 22:29:27
MaxSiominDev 2022-06-26 22:24:24
Ни одного человека тут не смутило что он запускает фрагмент через интент блять?

Асхсхсхс. Учится человек

Panic_Berlin 2022-06-26 22:29:39
Всегда нужен ментор
awawa0_0 2022-06-26 22:32:12
MaxSiominDev 2022-06-26 22:24:24
Ни одного человека тут не смутило что он запускает фрагмент через интент блять?

Наше дело ошибку убрать🤷‍♂️
Потом придёт с новой ошибкой, будем её чинить)

neuradev 2022-06-26 22:32:18
MaxSiominDev 2022-06-26 22:24:24
Ни одного человека тут не смутило что он запускает фрагмент через интент блять?

Краткая зарисовка: Senior stackoverflow developer

vaedermakar 2022-06-26 22:34:44
and_deve1 2022-06-26 21:04:39
Ну я к тому, что Андроид изначально был написан на джаве, да и сейчас если копатся в исходниках, то там 90 % джава))

Он не написан на джава, на джава оболочка над ядром

and_deve1 2022-06-26 22:39:54
Я про SDK)
and_deve1 2022-06-26 22:40:05
SDK не на джаве?
MaxSiominDev 2022-06-26 22:42:20
Почему у dialog fragment больше нет parent fragment? Из фрагмента вызываю dialog fragment, внутри него parent fragment вылетает с null pointer exception. Раньше всё работало. Код внутри dialog fragment не менял, код вызова dialog fragment тоже не менял. Другой код менял (пол приложения переписал), но не понимаю какое отношение это имеет к моему dialog fragment
madhatertwo 2022-06-26 22:56:28
Пацаны, словил Caused by: java.lang.NullPointerException: null cannot be cast to non-null type androidx.recyclerview.widget.RecyclerView в функции

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
inflater.inflate(R.layout.fragment_beer_list, container, false)

beerRecyclerView = view?.findViewById(R.id.beer_recycler_view) as RecyclerView <- ВОТ ЗДЕСЬ
beerRecyclerView.layoutManager = GridLayoutManager(context, 2)

return view
}

Гуглил, пишут, что могут быть проблемы в id ресайклера, но там всё ок. RecyclerView наследуется напрямую от лейаута.

neuradev 2022-06-26 22:59:42
madhatertwo 2022-06-26 22:56:28
Пацаны, словил Caused by: java.lang.NullPointerException: null cannot be cast to non-null type androidx.recyclerview.widget.RecyclerView в функции

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
inflater.inflate(R.layout.fragment_beer_list, container, false)

beerRecyclerView = view?.findViewById(R.id.beer_recycler_view) as RecyclerView <- ВОТ ЗДЕСЬ
beerRecyclerView.layoutManager = GridLayoutManager(context, 2)

return view
}

Гуглил, пишут, что могут быть проблемы в id ресайклера, но там всё ок. RecyclerView наследуется напрямую от лейаута.

У тебя же прям в ошибке написано в чем проблема )

madhatertwo 2022-06-26 23:02:21
neuradev 2022-06-26 22:59:42
У тебя же прям в ошибке написано в чем проблема )

Да, это я понял. Якобы не могу каст в RecyclerView здесь делать. Но не понимаю, как это исправить.

qavan 2022-06-26 23:02:43
madhatertwo 2022-06-26 22:56:28
Пацаны, словил Caused by: java.lang.NullPointerException: null cannot be cast to non-null type androidx.recyclerview.widget.RecyclerView в функции

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
inflater.inflate(R.layout.fragment_beer_list, container, false)

beerRecyclerView = view?.findViewById(R.id.beer_recycler_view) as RecyclerView <- ВОТ ЗДЕСЬ
beerRecyclerView.layoutManager = GridLayoutManager(context, 2)

return view
}

Гуглил, пишут, что могут быть проблемы в id ресайклера, но там всё ок. RecyclerView наследуется напрямую от лейаута.

А где ты view объявляешь, ты же результат инфлейта не используешь?

neuradev 2022-06-26 23:02:47
madhatertwo 2022-06-26 23:02:21
Да, это я понял. Якобы не могу каст в RecyclerView здесь делать. Но не понимаю, как это исправить.

Переведи дословно что там написано

neuradev 2022-06-26 23:03:17
qavan 2022-06-26 23:02:43
А где ты view объявляешь, ты же результат инфлейта не используешь?

View во фрагменте есть по дефолту 😀
Ну в смысле поле

creeksoncreeks 2022-06-26 23:03:31
madhatertwo 2022-06-26 22:56:28
Пацаны, словил Caused by: java.lang.NullPointerException: null cannot be cast to non-null type androidx.recyclerview.widget.RecyclerView в функции

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
inflater.inflate(R.layout.fragment_beer_list, container, false)

beerRecyclerView = view?.findViewById(R.id.beer_recycler_view) as RecyclerView <- ВОТ ЗДЕСЬ
beerRecyclerView.layoutManager = GridLayoutManager(context, 2)

return view
}

Гуглил, пишут, что могут быть проблемы в id ресайклера, но там всё ок. RecyclerView наследуется напрямую от лейаута.

kind reminder: смысл onCreateView – создать вью. не надо там искать что-то или делать манипуляции с вьюшками, тебе нужно просто создать лейаут фрагмента

все остальное — поиск вьюшек и др. манипуляции — делай в других, более поздних методах лайфсайкла

neuradev 2022-06-26 23:04:01
Гайс тут более глубокая проблема. Чел не читает что ему пишет вм это ж пздц
madhatertwo 2022-06-26 23:04:12
neuradev 2022-06-26 23:02:47
Переведи дословно что там написано

Аааа. не могу нулл ему передавать. Всё, голова не варит

qavan 2022-06-26 23:04:25
neuradev 2022-06-26 23:03:17
View во фрагменте есть по дефолту 😀
Ну в смысле поле

Так он обращается к view в месте, где оно создается, когда его еще нет
Я тоже плавлюсь?

neuradev 2022-06-26 23:04:45
qavan 2022-06-26 23:04:25
Так он обращается к view в месте, где оно создается, когда его еще нет
Я тоже плавлюсь?

Таки да ) о чем ему прямо сказано в стектрейсе

creeksoncreeks 2022-06-26 23:05:53
qavan 2022-06-26 23:04:25
Так он обращается к view в месте, где оно создается, когда его еще нет
Я тоже плавлюсь?

да, нинада так, но конкретно это обращение к view не выкинет npe, ведь там view?

neuradev 2022-06-26 23:07:30
creeksoncreeks 2022-06-26 23:05:53
да, нинада так, но конкретно это обращение к view не выкинет npe, ведь там view?

Оно выкидывает npe потому что view не проинициализировано

madhatertwo 2022-06-26 23:08:19
Короче, вы все правы. Я рил в этой же функции возвращаю вью и строчкой ранее к ней обращаюсь. Естественно, она даёт нулл. Переместил инициализацию ресайлера в OnViewCreated, всё заработало.
madhatertwo 2022-06-26 23:08:33
Спасибо
alan7888 2022-06-26 23:09:47
Здравствуйте ребята, я только начинаю изучать мобильную разработку, и возникают множество вопросов, хотел получить ответы на них. Есть желающий пообщаться?
neuradev 2022-06-26 23:10:53
alan7888 2022-06-26 23:09:47
Здравствуйте ребята, я только начинаю изучать мобильную разработку, и возникают множество вопросов, хотел получить ответы на них. Есть желающий пообщаться?

Та ты задавай вопрос тут вон 10 тысяч человек желают пообщаться

alan7888 2022-06-26 23:11:21
Неудобно просто, кажется тупейшие вопросы😁
neuradev 2022-06-26 23:11:47
От того что ты их задашь в личке умнее они не станут )
madhatertwo 2022-06-26 23:12:01
alan7888 2022-06-26 23:11:21
Неудобно просто, кажется тупейшие вопросы😁

Ничего, я ещё ни одного умного не задал. Не парься

An1L1ve 2022-06-26 23:13:02
Если хотите проверить ваше приложение на взлом, то пишите мне, и скидывайте АПК, и я попытаюсь взломать, и скажу где ошибки безопасности.
inthecornersc 2022-06-26 23:13:14
ckw71 2022-06-26 22:19:03
Почему ругается на this при переходе с фрагмента на фрагмент?(

— Работа с view binding во фрагменте сделана не по уставу. Возможны утечки.
— bt_stills выглядит как синтетик, а view binding присутствует для красоты

neuradev 2022-06-26 23:13:21
An1L1ve 2022-06-26 23:13:02
Если хотите проверить ваше приложение на взлом, то пишите мне, и скидывайте АПК, и я попытаюсь взломать, и скажу где ошибки безопасности.

Может тебе ещё ключи дать от квартиры где деньги лежат?

Мне кажется это спам @Harmonizr

inthecornersc 2022-06-26 23:17:20
madhatertwo 2022-06-26 22:56:28
Пацаны, словил Caused by: java.lang.NullPointerException: null cannot be cast to non-null type androidx.recyclerview.widget.RecyclerView в функции

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
inflater.inflate(R.layout.fragment_beer_list, container, false)

beerRecyclerView = view?.findViewById(R.id.beer_recycler_view) as RecyclerView <- ВОТ ЗДЕСЬ
beerRecyclerView.layoutManager = GridLayoutManager(context, 2)

return view
}

Гуглил, пишут, что могут быть проблемы в id ресайклера, но там всё ок. RecyclerView наследуется напрямую от лейаута.

«Уж сколько раз твердили миру…» что в onCreateView следует только создать и возвратить view, а настройку делать в onViewCreated.

Казалось бы, есть же view binding. Но нет, по-прежнему хотим весело плясать по граблям findViewById.

creeksoncreeks 2022-06-26 23:17:52
madhatertwo 2022-06-26 22:56:28
Пацаны, словил Caused by: java.lang.NullPointerException: null cannot be cast to non-null type androidx.recyclerview.widget.RecyclerView в функции

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
inflater.inflate(R.layout.fragment_beer_list, container, false)

beerRecyclerView = view?.findViewById(R.id.beer_recycler_view) as RecyclerView <- ВОТ ЗДЕСЬ
beerRecyclerView.layoutManager = GridLayoutManager(context, 2)

return view
}

Гуглил, пишут, что могут быть проблемы в id ресайклера, но там всё ок. RecyclerView наследуется напрямую от лейаута.

там вообще вью не инфлейтнутый возвращается, раз уж на то пошло

inthecornersc 2022-06-26 23:18:10
neuradev 2022-06-26 23:04:01
Гайс тут более глубокая проблема. Чел не читает что ему пишет вм это ж пздц

Чукча не читатель, чукча писатель, однако!

neuradev 2022-06-26 23:18:50
inthecornersc 2022-06-26 23:17:20
«Уж сколько раз твердили миру…» что в onCreateView следует только создать и возвратить view, а настройку делать в onViewCreated.

Казалось бы, есть же view binding. Но нет, по-прежнему хотим весело плясать по граблям findViewById.

Я кстати использую findView до сих пор. Мне удобно. Ну там где компоуза нет ещё

madhatertwo 2022-06-26 23:18:58
creeksoncreeks 2022-06-26 23:17:52
там вообще вью не инфлейтнутый возвращается, раз уж на то пошло

Можно конкретнее?

V3n0m5 2022-06-26 23:19:05
An1L1ve 2022-06-26 23:13:02
Если хотите проверить ваше приложение на взлом, то пишите мне, и скидывайте АПК, и я попытаюсь взломать, и скажу где ошибки безопасности.

В рамках оффтопа: Пф-ф-ф. Если так кому-то нужен тест на безопасность APK, то Okay Google: download Mobile Security Framework (MobSF). Усе, вопрос закрыт.

inthecornersc 2022-06-26 23:19:59
madhatertwo 2022-06-26 23:18:58
Можно конкретнее?

inflater.inflate(R.layout.fragment_beer_list, container, false)
..
return view

В каком месте тут было инициализировано view?

creeksoncreeks 2022-06-26 23:20:16
madhatertwo 2022-06-26 23:18:58
Можно конкретнее?

ты пишешь inflater.inflate(что-то там, что-то там)

то есть ты вызываешь функцию inflate у класса LayoutInflater, который отвечает за создание лейаута

эта функция возвращает View, то есть созданный лейаут

creeksoncreeks 2022-06-26 23:21:59
но в конце ты возвращаешь другой вью, ключевое слово view, которое в свою очередь метод getView

метод getView возвращает текущий вью, но ты ведь результат инфлейтера не присвоил никуда, поэтому этого текущего вью нет

inthecornersc 2022-06-26 23:22:35
neuradev 2022-06-26 23:18:50
Я кстати использую findView до сих пор. Мне удобно. Ну там где компоуза нет ещё

Тебе можно )
Но лучше отдать максимум на контроль компилятору.

neuradev 2022-06-26 23:23:49
inthecornersc 2022-06-26 23:22:35
Тебе можно )
Но лучше отдать максимум на контроль компилятору.

Мне не нравится вьюбиндинг по нескольким причинам. Во первых это ещё одна доп либа, а во-вторых она никак не упрощает код. Более того ещё и доп сущность какая-то появляется. А ещё она кодген вроде емнип

inthecornersc 2022-06-26 23:23:53
creeksoncreeks 2022-06-26 23:21:59
но в конце ты возвращаешь другой вью, ключевое слово view, которое в свою очередь метод getView

метод getView возвращает текущий вью, но ты ведь результат инфлейтера не присвоил никуда, поэтому этого текущего вью нет

Зато можно написать view?.xxxxx и это скомпилируется 😏

neuradev 2022-06-26 23:24:08
Котлин синтетика была топ вот по ней я реально горюю )
madhatertwo 2022-06-26 23:26:28
creeksoncreeks 2022-06-26 23:21:59
но в конце ты возвращаешь другой вью, ключевое слово view, которое в свою очередь метод getView

метод getView возвращает текущий вью, но ты ведь результат инфлейтера не присвоил никуда, поэтому этого текущего вью нет

Понял, спасибо. Странно, что это вообще компилируется

inthecornersc 2022-06-26 23:26:34
neuradev 2022-06-26 23:23:49
Мне не нравится вьюбиндинг по нескольким причинам. Во первых это ещё одна доп либа, а во-вторых она никак не упрощает код. Более того ещё и доп сущность какая-то появляется. А ещё она кодген вроде емнип

Ну да, оно генерится. Никакого оверхеда не замечаю. Зато за тебя делается контроль типов, всё не-нулл и просто невозможно обратиться ко вью, которого нет в лейауте.

Синтетик был няшный, но как раз позволял ошибочно импортнуть не тот лейаут с таким же вью ид и получить интересные глюки.

inthecornersc 2022-06-26 23:26:53
madhatertwo 2022-06-26 23:26:28
Понял, спасибо. Странно, что это вообще компилируется

С точки зрения компилятора там всё норм.

neuradev 2022-06-26 23:27:07
inthecornersc 2022-06-26 23:26:34
Ну да, оно генерится. Никакого оверхеда не замечаю. Зато за тебя делается контроль типов, всё не-нулл и просто невозможно обратиться ко вью, которого нет в лейауте.

Синтетик был няшный, но как раз позволял ошибочно импортнуть не тот лейаут с таким же вью ид и получить интересные глюки.

Ну, так не импортируй 😀😀

|