如何在android studio中将数据从一个活动传输到另一个活动,而不打开新的活动?

a1o7rhls  于 2023-02-05  发布在  Android
关注(0)|答案(1)|浏览(229)

我正在尝试使用另一个活动的数据创建回收器视图。我需要将数据从一个活动传输到回收器视图活动,而不打开回收器视图活动。因为只有当我按下另一个按钮时,我才想转到下一个活动。
我尝试过使用Intent,但startActivity(intent)总是打开另一个Activity。我还尝试过使用“共享”首选项保存数据并在另一个Activity中检索数据,但Base64.DEFAULT不起作用。

public void sendData(Bitmap images, String image_class) {
    Intent send = new Intent(getApplicationContext(), Scanned_List_Activity.class);
    send.putExtra("image_class",image_class);
    send.putExtra("image", images);
    startActivity(send);
}
kyks70gy

kyks70gy1#

如果我没理解错你的问题,你应该换一种方法。
Activity表示View或者更好的MVC架构中的Controller。您在RecyclerReceiver中获得的数据来自模型,Activity只是将其传递给视图。这就是为什么正确的方法是将此数据放在模型层中,而不是将其作为Parcelable对象通过Intent传递。
现在我们有一个ViewModel类,它是介于modelview之间的一个层。如果你使用DI工具,比如dagger,你可以在这两个Activity之间保留一个ViewModel的示例--当你在第一个Activity上准备数据集时,第二个Activity将在下一次打开时获得它。
简而言之,您应该将此数据集放在单独的表中,并从第二个活动请求,或者放在ViewModel上,这两个活动共享哪个示例。

相关问题