Операции Android персистентность UI

У меня должно быть две операции в приложении для Android, которое может быть переключено друг между другом с персистентностью UI следующим образом:

  1. Действие Действие запусков B.

  2. Пользователь инициировал некоторые изменения UI в Действии B.

  3. Действие B возвращается к Действию (вызовом к onBackPressed() или что-то подобное)

  4. Действие Действие перезапусков B.

Я хотел бы, чтобы изменения, внесенные в шаге 2, были видимы на шаге 4.

Я попытался использовать singleInstance действие наклеивает Действие B напрасно. Я также предпочел бы более изящное решение, чем простая запись всех свойств объектов к таблице SQLite или файлу. Кажется, что это поведение должно быть легко достижимым, учитывая, что Android делает это автоматически для вызовов к onBackPressed() где UI родительского Действия сохраняется.

Любая справка очень ценится.

1
задан aakash 10 June 2010 в 23:57
поделиться

2 ответа

Действие A запускает действие B

.

Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivityForResult(intent); 

Запустите действие B из действия A, используя startActivityForResult.

Пользователь запускает некоторые изменения пользовательского интерфейса в Мероприятие B

.

Действие B возвращается к действию A ( вызов onBackPressed () или что-то в этом роде аналогично)

Intent intent = new Intent();
                    intent.putExtra("change_value1", change1);
                    intent.putExtra("change_value2", change2);
                    setResult(RESULT_OK, intent);
                    finish();

Действие A повторно запускает действие B.

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        /*
         * Gets invoked on finish() from ActivityB.class
         */
        super.onActivityResult(requestCode, resultCode, data);

        switch(requestCode){
        case 0:

            if(resultCode == RESULT_OK){
                String change1, change2;
                    change1 = data.getStringExtra("change_value1");
                change2 = data.getStringExtra("change_value2");
                Intent intent = new Intent(ActivityA.this, ActivityB.class);
                                startActivity(intent); 
            }
        }
    } 

Подробнее о намерениях можно прочитать здесь .

1
ответ дан 2 September 2019 в 23:49
поделиться

Если вы хотите сохранять данные между несколькими активностями, лучше всего создать подкласс Application и поместить туда свои объекты. Тогда каждая порожденная вами деятельность сможет получить доступ к тем же объектам.

http://developer.android.com/reference/android/app/Application.html

Как объявить глобальные переменные в Android?

1
ответ дан 2 September 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: