Android - 如何从其他 class 动态添加 ListView 项目
Android - How to add ListView item dynamically from other class
我正在使用 FCM(最新的 GCM)开发简单的短信应用程序,其中我有一个名为 ChatActivity 的 activity,它使用 ListView 显示消息列表。
但是,当任何新消息到达时,它将由 FirebaseMessagingService 处理 class...
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);
}
}
每当有新消息到达时,class 都会在控制台中成功打印消息。
我的问题是,当我在 onMessageReceived() 中收到来自 FCM 的新消息时 class,我如何将该字符串消息添加到 ChatActivity 中的 ListView?
并且,在将项目添加到 ListView 之后,如何在 ListView 适配器上调用 .notifyDataSetChanged()?
您可以通过多种方式将数据传递给 Activity,并在收到消息后扩展为 ListView。一种简单的方法是在您的 Activity 中设置 BroadcastReceiver,然后当您收到 FCM 消息时,您可以使用 LocalBroadcastManager 发送一个广播,指示您的 activity 应该更新 ListView 的适配器。有关更多信息,请参阅 LocalBroadcastManager。
@McAwesomville 建议使用 Firebase Realtime Database, is also an option, you can see it in use for a simple chat app in the Firebase Android Codelab.
我在我的应用程序中使用 FirebaseUI,它运行良好。您可以阅读更多相关信息 here.
我正在使用 FCM(最新的 GCM)开发简单的短信应用程序,其中我有一个名为 ChatActivity 的 activity,它使用 ListView 显示消息列表。
但是,当任何新消息到达时,它将由 FirebaseMessagingService 处理 class...
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);
}
}
每当有新消息到达时,class 都会在控制台中成功打印消息。
我的问题是,当我在 onMessageReceived() 中收到来自 FCM 的新消息时 class,我如何将该字符串消息添加到 ChatActivity 中的 ListView?
并且,在将项目添加到 ListView 之后,如何在 ListView 适配器上调用 .notifyDataSetChanged()?
您可以通过多种方式将数据传递给 Activity,并在收到消息后扩展为 ListView。一种简单的方法是在您的 Activity 中设置 BroadcastReceiver,然后当您收到 FCM 消息时,您可以使用 LocalBroadcastManager 发送一个广播,指示您的 activity 应该更新 ListView 的适配器。有关更多信息,请参阅 LocalBroadcastManager。
@McAwesomville 建议使用 Firebase Realtime Database, is also an option, you can see it in use for a simple chat app in the Firebase Android Codelab.
我在我的应用程序中使用 FirebaseUI,它运行良好。您可以阅读更多相关信息 here.