Как получить доступ к базе данных, созданной в одном действии из другого действия? - PullRequest
4 голосов
/ 09 марта 2011

У меня есть два занятия: упражнение А и занятие Б. Деятельность B создает базу данных, вставляет в нее данные, редактирует данные и затем закрывает базу данных. Действие A - это пустой экран, и оно вызывает действие B. Действие B завершает свою работу с базой данных и возвращается к действию A. Теперь я хочу, чтобы мое действие A получило доступ к базе данных, созданной и измененной операцией B. Это может быть очень простое решение, извините, если это глупый вопрос. Любая подсказка будет высоко ценится.

Спасибо, Шаист

Ответы [ 4 ]

2 голосов
/ 09 марта 2011

Чтобы получить доступ к данным в Деятельности A, используйте onActivityResult () в Деятельности A следующим образом:

@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 голос
/ 09 марта 2011

Вы должны проверить эту ссылку, http://kagii.squarespace.com/journal/2010/9/10/android-sqlite-locking.html. Она содержит полезную информацию о том, как использовать базы данных на Android.

1 голос
/ 09 марта 2011

использовать провайдера контента ... Но ваша деятельность напрямую не может взаимодействовать с деятельностью провайдера контента, взаимодействовать с контент-резолвером, и тогда резолвер взаимодействует с провайдером контента, поэтому теперь вы можете получить доступ к данным другой активности.

1 голос
/ 09 марта 2011

Вы должны создать класс DBAdapter для обработки всего вашего взаимодействия с базой данных. База данных SQL Lite и предназначена для всего приложения. Просто получите доступ к нему в B, как вы сделали в A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...