我想使用一个来自不同类的数据库,我如何在JAVA中做到这一点?(AndroidStudio/Java)

我想使用一个来自不同类的数据库,我如何在JAVA中做到这一点?(AndroidStudio/Java),java,android,Java,Android,我正在努力解决以下问题: 我得去上课,主课和第二课 在main类中,我创建了一个数据库(mDatabase)并插入数据 到数据库 public class MainActivity extends AppCompatActivity{ public SQLDatabase dbHelper; //created class to initialize my database public SQLiteDatabase mDatabase; public void onCreate(Bundl

我正在努力解决以下问题:

我得去上课,主课和第二课

在main类中,我创建了一个数据库(mDatabase)并插入数据 到数据库

public class MainActivity extends AppCompatActivity{
public SQLDatabase dbHelper; //created class to initialize my database
public SQLiteDatabase mDatabase;


public void onCreate(Bundle savedInstanceState){
        dbHelper = new SQLDatabase(this);
        mDatabase = dbHelper.getWritableDatabase();
        mDatabase.insert(....);
}

现在我想在另一个活动中显示数据库(mDatabase)中的数据。 因此,我必须使用另一个类中的变量mDatabase,因为我在另一个活动中使用了recyclerView,这就是为什么:

public class SecondActivity{

    public void onCreate(){
        recyclerView=findViewById(R.id.recyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        mAdapter = new AdapterClass(this, getAllItems());
        recyclerView.setAdapter(mAdapter);
    }

    public Cursor getAllItems(){

    return mDatabase.query(....);
    }


}

我想有一个活动,在其中输入数据库的数据,我想有第二个活动,我可以显示插入的数据


您知道如何使用两个类中的mDatabase吗?

在另一个活动中打开新的数据库连接

变量和对象不能在活动之间共享,除非它们是
静态的
(并且与该用例兼容:需要活动上下文的对象如果是静态的将导致问题和泄漏),或者
可序列化的
,并且您将其作为参数提供

您也可以考虑<强>片段< /强>:这将允许在包含<代码>活动< /代码>中创建<代码> MdBase<代码>连接,并将其从您的<代码>碎片<代码>中重新使用,或者如果应用程序上下文初始化数据库连接,则将数据库连接放置在应用程序级别。

  • 创建自己的应用程序类
    公共类测试应用程序扩展应用程序{
    公共静态sqldbhelper数据库;
    公共静态SQLiteDatabase-mDatabase;
    @凌驾
    public void onCreate(){
    super.onCreate();
    initDb();
    }
    public void initDb(){
    dbHelper=newsqldatabase(this);
    mDatabase=dbHelper.getWritableDatabase();
    mDatabase.insert(…);
    }
    公共静态SQLiteDatabase getDb(){
    返回mDatabase;
    }
    }
    
  • 将应用程序类添加到应用程序标记下的AndroidManifest


    试试这个回答你的问题吗?谢谢你的回答。我会尝试这个解决方案,如果它对我有帮助的话,我会让你知道。我有一个问题要问3号。你不认为你必须首先从类Testapplication创建一个对象吗?你试图直接从一个类中使用一个方法。谢谢你,我在你的帮助下找到了答案。我很感激。因为它是一个静态方法,所以我不必从类中创建对象。有了这个解决方案,我可以在不同的活动中构建我的应用程序。很高兴在这里:)谢谢你的回答。我会尝试这个解决方案,并会让你知道,如果它帮助了我。谢谢你的帮助,你的评论。你能给我一个示例代码吗?