[英]Android - How to add ListView item dynamically from other class
我正在使用FCM(最新的GCM)开发简单的短信应用程序,其中有一个名为ChatActivity的活动,该活动使用ListView显示消息列表。
但是,当任何新消息到达时,它将由FirebaseMessagingService类处理。
public class MyFcmListenerService extends FirebaseMessagingService {
@override
public void onMessageReceived(RemoteMessage remoteMessage) {
String from = remoteMessage.getFrom();
Map<String, String> data = remoteMessage.getData();
String body = rawData.get("body");
Log.i("From",from);
Log.i("Message",body);
}
}
每当有新消息到达时,此类都会在控制台中成功打印消息。
我的问题是,当我从onMessageReceived()类的FCM中收到新消息时,如何将该字符串消息添加到ChatActivity中的ListView中?
并且,将项目添加到ListView之后,如何在ListView Adapter上调用.notifyDataSetChanged()?
您可以通过多种方法将数据传递给Activity,并通过扩展将ListView接收到消息。 一种简单的方法是在“活动”中设置一个BroadcastReceiver,然后在收到FCM消息时,可以使用LocalBroadcastManager发送广播,指示您的活动应更新ListView的适配器。 有关更多信息,请参见LocalBroadcastManager 。
@McAwesomville建议您使用Firebase Realtime Database ,这也是一种选择,您可以在Firebase Android Codelab中将其用于简单的聊天应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.