如何从另一个类更新片段的ui?

时间:2019-04-11 22:47:50

标签: android android-fragments kotlin

我正在Android Studio中使用Kotlin开发Android应用程序。该应用程序需要通过websocket连接获取一些JSON数据,使用gson将其转换为数据类,然后将其传递给片段以更新view元素。我正在尝试找出正确地在这些类之间传递数据的正确方法。我需要从Mainactivity中实例化的websocketClient类中更新Fragment的ui元素。

我的项目有以下类: Mainacticity.kt,WebsocketClient.kt,Fragment1.kt和DataClass.kt

我想出了如何通过将WebsocketClient类的“ this”作为上下文并使用context.runOnUiThread()来更新UI的方法,但这感觉像是错误的方法。

我从类实现片段的ui更新的最初想法:

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()'

0 个答案:

没有答案