gpt4 book ai didi

java - 如何从不同的 fragment 访问房间数据库?

转载 作者:行者123 更新时间:2023-12-04 15:36:10 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个 TabLayout,每个选项卡都由一个 fragment 表示。我在数据库中有几个表。对于每个表,我都希望有一个选项卡来显示表的内容列表。要访问数据库,我需要传入一个上下文,但它只能从 MainActivity 获得。如何从每个 fragment 访问数据库实例?

这是一些代码:ElectronicsDatabase.java

@Database(entities = {Smartphone.class, Tablet.class,
Laptop.class, VideoGameConsole.class}, version = 1)
public abstract class ElectronicsDatabase extends RoomDatabase {

public abstract SmartphoneDao getSmartphoneDao();
public abstract TabletDao getTabletDao();
public abstract LaptopDao getLaptopDao();
public abstract VideoGameConsoleDao getVideoGameConsoleDao();

private static final String DB_NAME = "products.db";

private static ElectronicsDatabase db;

public static ElectronicsDatabase getInstance(Context context)
{
if (db == null)
{
db =buildDatabaseInstance(context);
}
return db;
}

private static ElectronicsDatabase buildDatabaseInstance(Context context)
{
return Room.databaseBuilder(context, ElectronicsDatabase.class,
DB_NAME).allowMainThreadQueries().build();
}
}

在主要 Activity 中,我是这样访问它的:

db = ElectronicsDatabase
.getInstance(getApplicationContext());

最佳答案

在您的 fragment 中,您可以使用 getActivity() 来访问父 Activity 的上下文。

但我建议你使用viewModel用于访问您的数据库。

关于java - 如何从不同的 fragment 访问房间数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59702389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com