Android: передача строк / значений внутри вкладок, каждая вкладка имеет свою активность (кроме Getters-Setters) - PullRequest
2 голосов
/ 18 апреля 2011

У меня есть макет с вкладками в моем приложении, и я хочу, чтобы часть настроек была другой вкладкой в ​​пользовательском интерфейсе.Настройки включают в себя ввод количества / количества присутствующих объектов (например, количество шаров).Затем эти данные необходимо перенести на другие вкладки, которые обрабатывают входные данные и соответственно обрабатывают отображение на соответствующих вкладках (скажем, число шаров = 3, тогда на 2-й вкладке должно быть 3 кнопки, если шары= 1, тогда только 1 кнопка и так далее ...).Я хочу избежать отправки данных в родительское действие, а затем в соответствующие дочерние действия, что требует перезапуска всего приложения [startActivity ()], и индивидуальная передача невозможна, так как startActivity () для дочерних действий приведет ктолько в отображаемом содержимом дочернего действия.В этом случае я должен в конечном итоге использовать геттеры и сеттеры.Есть ли другой / лучший метод, которому я могу следовать в этом случае ...?

Ответы [ 3 ]

2 голосов
/ 04 февраля 2013

Вы можете попробовать методы onPause / onResume.

Когда вкладка изменилась, активность переходит в режим паузы. Я переопределяю метод onPause для сохранения переменных в другом публичном классе. Чем загружать переменные методы onResume и onCreate.

@Override
public void onPause()
{
    super.onPause();

    fileC.fileFrom = fileFrom;
    fileC.fileName = fileName;
    fileC.fileTo = fileTo;
    fileC.Process = fileProcess;

    Log.w("onPause", "onPause!!!!!!!!");
}

@Override
public void onResume()
{
    super.onResume();
    if( fileC.Process != null  )
    {
        fileFrom = fileC.fileFrom;
        fileTo = fileC.fileTo;
        fileName = fileC.fileName;        
        fileProcess = fileC.Process;
    }
    Log.w("onResume", "onResume!!!!!!!!");
}
1 голос
/ 18 апреля 2011

Синглтоны - не лучший выбор для приложений Android, потому что Dalvik VM может загрузить синглтон-класс дважды и уничтожить все ваши сохраненные данные.

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

Наилучшим способом, imho, является отправка данных через объект Intent или методы получения / установки, сохраняемые в методе onPause.

1 голос
/ 18 апреля 2011

Почему вы не можете использовать одноэлементный класс и переменные статического класса для передачи этих данных?.

...