如何从另一个活动访问在一个活动中创建的数据库?

时间:2011-03-09 12:04:21

标签: android database android-activity

我有两项活动,活动A和活动B. 活动B正在创建数据库,向其中插入数据,编辑数据然后关闭数据库。 活动A是一个空屏幕,它调用活动B.活动B完成其数据库工作并返回活动A.现在我希望我的活动A访问由活动B创建和修改的数据库。 这可能是一个非常简单的解决方案,如果这是一个愚蠢的问题,请原谅。 任何线索都将受到高度赞赏。

谢谢, 斯海斯塔

4 个答案:

答案 0 :(得分:2)

要访问活动A中的数据,请按以下方式使用活动A中的onActivityResult():

@Override
protected void onActivityResult(int requestCode, int resultCode, ntent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (requestCode == PICK_CONTACT_REQUEST && resultCode == 10) {
        pos = intent.getIntExtra("doc_id", 1);
        mDbHelper.open();
        /* Write the database accessing code and whatever you want to do on 
           returning back from Activity B here. */
        mDbHelper.close();
    } 
}

还要记住,您可以将此方法与intent方法一起使用,同时调用startActivityForResult() 就是这样,你需要做什么

如果有任何混淆,那么你可以问

编辑:此代码将有助于获取数据

public class FirstActivity extends Activity {
AnyDBAdapter mDbHelper = new AnyDBAdapter(this);
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);
mDbHelper.open();
        Cursor foemiCursor = mDbHelper.fetchAll();/*fetchAll() is which you need to create in AnyDBAdapter class showing query for fetching the database */
        startManagingCursor(foemiCursor);
/*Now the query will get executed and you need to access just vales from it, here you write code for it*/
foemiCursor.close();
mDbHelper.close();

}

答案 1 :(得分:1)

您应该创建一个DBAdapter类来处理所有数据库交互。数据库是SQL Lite,适用于整个应用程序。只需像在A中那样在B中访问它。

答案 2 :(得分:1)

使用内容提供商...但直接您的活动无法与内容提供商活动进行交互,与内容解析器进行交互,而解析器与内容提供商进行交互,因此您现在可以访问其他活动的数据。

答案 3 :(得分:1)

您应该查看此链接http://kagii.squarespace.com/journal/2010/9/10/android-sqlite-locking.html。它包含一些关于如何在android上使用数据库的好信息。