繁体   English   中英

Android-如何从其他类动态添加ListView项

[英]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中将其用于简单的聊天应用程序。

我在我的应用程序中使用FirebaseUI,并且效果很好。 您可以在此处了解更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM