Как обновить пользовательский интерфейс фрагмента из другого класса? - PullRequest
0 голосов
/ 12 апреля 2019

Я занимаюсь разработкой приложения для Android с использованием Kotlin в Android Studio.Приложению необходимо получить некоторые данные JSON через соединение через веб-сокет, преобразовать их в класс данных с помощью gson и затем передать их фрагменту для обновления элемента представления.Я пытаюсь найти правильный способ правильно передавать данные между этими классами.Мне нужно обновить элементы пользовательского интерфейса фрагмента из класса websocketClient, который создается в Mainactivity.

В моем проекте есть следующие классы: Mainacticity.kt, WebsocketClient.kt, Fragment1.kt и DataClass.kt

Я выяснил, как обновить пользовательский интерфейс из класса WebsocketClient, передав его 'this' в качестве контекста и используя context.runOnUiThread (), но мне кажется, что это неправильный способ.

Моя первоначальная идеяреализация обновлений пользовательского интерфейса фрагмента из класса:

class Fragment1 : Fragment(){
public fun onReceiveData(data : String){
    Toast.makeText(activity, data, Toast.LENGTH_SHORT).show()
}

class WebsocketClient(uri: URI, context: MainActivity): WebSocketClient(uri){
    override fun onMessage(message: String?) {
        Fragment1().onReceiveData(message)
    }
}

Это дает мне ошибку: android.content.Context.getPackageName () 'для ссылки на пустой объект

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...