Android 从Kotlin中的其他类向MainActivity中的列表添加数据

Android 从Kotlin中的其他类向MainActivity中的列表添加数据,android,kotlin,Android,Kotlin,我有一个应该从另一个类填充的列表。在my Main中,Activity是列表所在的位置,用于在UI中显示它 class MainActivity:AppCompatActivity(){ 私有变量listView:listView?=null 私有变量列表:ArrayList=ArrayList() 私有lateinit变量arrayAdapter:arrayAdapter 重写创建时的乐趣(savedInstanceState:Bundle?){ super.onCreate(savedIns

我有一个应该从另一个类填充的列表。在my Main中,Activity是列表所在的位置,用于在UI中显示它

class MainActivity:AppCompatActivity(){
私有变量listView:listView?=null
私有变量列表:ArrayList=ArrayList()
私有lateinit变量arrayAdapter:arrayAdapter
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
createListView()
HubConnector.hubConnectorInstance.activity=此
btnConnect.setOnClickListener{
if(btnConnect.text.toString().toLowerCase()=“连接”){
if(HubConnector.hubConnectorInstance.getConnectionState()==null){
HubConnector.hubConnectorInstance.Starthub连接(
editTextText\u ipAddress.text.toString(),
editTextText_port.text.toString(),
editTextText\u readerAddress.text.toString()的
)
btnConnect.text=“断开连接”
addMessageToList(“已连接”)
}
if(HubConnector.hubConnectorInstance.getConnectionState()==HubConnectionState.DISCONNECTED){
HubConnector.hubConnectorInstance.Starthub连接(
editTextText\u ipAddress.text.toString(),
editTextText_port.text.toString(),
editTextText\u readerAddress.text.toString()的
)
btnConnect.text=“断开连接”
addMessageToList(“已连接”)
}
}else if(btnConnect.text.toString().toLowerCase()=“断开连接”){
if(HubConnector.hubConnectorInstance.getConnectionState()==HubConnectionState.CONNECTED){
HubConnector.hubConnectorInstance.stopHubConnection()
btnConnect.text=“连接”
addMessageToList(“断开连接”)
}否则{
btnConnect.text=“连接”
addMessageToList(“断开连接”)
}
}
}
}
private fun createListView(){
listView=findViewById(R.id.listView\u回复)
arrayAdapter=arrayAdapter(这个,android.R.layout.simple\u list\u item\u 1,list)
}
public fun addMessageToList(消息:字符串){
列表。添加(消息)
arrayAdapter.notifyDataSetChanged()
listView!!.adapter=arrayAdapter
scrollMyListViewToBottom()
}
私人娱乐卷轴MyListViewToBottom(){
listView_.post(
Runnable{//选择最后一行,使其滚动到视图中。。。
listView_replays.setSelection(arrayAdapter.count-1)
}
)
}
}
但我有一个从服务器获取数据的类。每次收到回复时,我都希望将其传递给MainActivity

类轮毂连接器{
lateinit var hubConnection:hubConnection
var connectionId:字符串?=null
var readerAddress:字符串?=null
变量活动:MainActivity?=null
伴星{
私有变量实例:HubConnector=HubConnector()
val轮毂连接器安装:轮毂连接器
得到(){
if(实例==null){
实例=HubConnector()
}
返回实例
}
}
私人娱乐设置EventListeners(){
哈伯顿(
“设备已连接”,
{消息:字符串->
Log.i(“标记”,消息)
connectionId=消息
var messageToPass=arrayOf(readerAddress!!,connectionId!!)
hubConnection.send(“ReaderAddress”,messageToPass)
MainActivity.addMessageToList(message)//我需要将其添加到MainActivity内的列表中
},
String::class.java
)
}
}

也许您可以将列表定义为静态列表。
或者为从其他类触发该类创建自己的侦听器接口。

您可以在setUpEventListeners方法中将该接口用作回调。您可以演示如何使用该接口吗。我找不到可以遵循的简单示例实现。