Задать вопрос
@sanke46

Как управлять View не из Activity (где он стоит) а из Fragment?

У меня есть проблема , мне необходимо поменять фон обьект из главного Activity из Fragments как это сделать ??
я пробовал разные способы но они не подходят :

val view2 = LayoutInflater.from(context).inflate(R.layout.activity_main, null)
                val drawerLayout = ButterKnife.findById<DrawerLayout>(view2, R.id.main_drawer_layout)
                drawerLayout.setBackgroundResource(R.drawable.bg_2)
                ButterKnife.bind(this, view2)


fun changeBackground(firebaseId: String) {
        when(firebaseId) {
            "One" -> main_drawer_layout.setBackgroundResource(R.drawable.bg_grey)
            "Two" -> main_drawer_layout.setBackgroundResource(R.drawable.bg)
            else -> main_drawer_layout.setBackgroundResource(R.drawable.bg_2)
        }
    }


но не один спомоб не работает выдает ошибку что Drawable не init хотя я использую butterKnife
  • Вопрос задан
  • 74 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
у Вас ошибка в понимание как работает Андроид.
Еще раз прочитайте про жизненные циклы.
А пока грубо считайте, что экран каждый раз отрисовывается с нуля.
Нельзя просто сказать, что у тебя новая картинка на фоне.
Нужно ввести шаред преференс (настройку, которая будет сохраняться в файле)
И при отрисовке ставить фон в соответсвии ей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы