如何将数据库适配器传递给另一个活动?

Rob*_*uch 3 database android searchable

我在理解Android SDK中的搜索对话框时遇到了一些麻烦.

我的应用程序的"主要活动"提供了一个按钮.如果用户单击此按钮,则会调用搜索对话框.然后搜索本身在异步任务中完成,因为它可能需要一些时间.到现在为止还挺好.

主要活动还创建了一个数据库适配器对象,用于初始化数据库,执行查询等.但是,如何在可搜索的活动中使用此适配器对象?

主要活动
// Init database
DatabaseAdapter dba = new DatabaseAdapter();
dba.init();
// open search dialog
if (buttonClick) onSearchRequest();

可搜索的活动

  1. 获取意图并从搜索对话框接收查询 - >确定
  2. 如何再次使用数据库适配器来执行查询?

我必须创建一个新对象吗?我可以以某种方式将它从最小活动传递到可搜索的活动,[...]?

谢谢,
罗伯特

Igo*_*pov 8

您可以在Application类中创建适配器,并在所有活动中对其进行检索.这就是我为我的项目所做的.

public class ApplicationClass extends Application {

    Adapter adapter.

    @Override 
    public void onCreate(){
    adapter=new Adapter();
        super.onCreate();
    }

    public Adapter getAdapter(){
        return adapter;
    }

}
Run Code Online (Sandbox Code Playgroud)

然后从Activity调用:

Adapter adapter=(ApplicationClass)getApplication().getAdapter();
Run Code Online (Sandbox Code Playgroud)

这样的事情.ApplicationClass用于您的应用名称.可能是MyAppNameApplication您应该在包中创建它,然后在AndroidManifest.xml中声明