我正在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()'