我有一个包含listview,button和textview的应用程序。通过单击按钮,我使用ArrayAdapter将新项添加到ListView。现在实现了一个从服务器接收信息的服务。如何从我的服务更新Listview,这是当我的服务器向我发送答案时触发的事件:
static void HandleOnRespose (object sender, ServerInEventArgs e)
{
//add in listview a reponse from server (e.CodeRespose)
}
答案 0 :(得分:1)
您有多种方法可以实现调用活动的服务(3说实话)您可以阅读更多相关信息here。
@zgc7009's建议是有效的,并且在处理可以放在Bundle中的简单数据类型时可能已经足够好了,但是在处理更复杂的数据时可能会有点混乱。例如。
我认为使用回调是最合适的方法(但它可能是一个主观的东西)。
您必须在服务上注册回调。根据您的实现,您可以从活动中执行以下操作:
yourService.someActionCallback = (codeResponse)=>
{
//do whatever you want on your listview using the codeResponse
lv.NotifyDataSetChanged();
}
从服务中调用您的回调:
static void HandleOnRespose (object sender, ServerInEventArgs e)
{
callback(e.CodeRespose);
}
就是这样。
P.S。你仍然必须确保回调不是null并且总是注册回调(并且在活动的销毁时“取消注册”它,但这只是基础。