Когда использовать больше мероприятий - PullRequest
1 голос
/ 14 ноября 2010

У меня есть Activity, которая является представлением OpenGL.У меня также есть макет XML для использования в настройках.До сих пор, чтобы показать меню настроек, я просто вывел его на передний план с помощью setContentView ().И то же самое, чтобы вернуться к представлению OpenGL.

Но разве в этом случае я должен назначить меню предпочтений свое собственное действие?

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

И если это хорошая идея, как передать данные в обоих направлениях?У меня есть класс, в котором хранятся все настройки.Могу ли я отправить его в Activity и обратно?Или это лучший способ сохранить настройки в базе данных sqlite, а затем использовать их для передачи данных?

Ответы [ 2 ]

1 голос
/ 14 ноября 2010

Вы уже указали на основное отличие: управление историей.

Вы можете передавать данные в Activity через Intents putExtra () / getExtra ():

  1. Создать Intend и добавитьпользовательские данные через Intent.putExtra(..)
  2. Запустить новую операцию: startActivityForResult(intent).
  3. Внутри нового действия вы можете получить дополнительные данные с помощью intent.getXyzExtra() (где xyz - тип).
  4. Когда новое действие выполнено, просто наберите setResult(int, resultIntent).Опять же, вы можете добавить дополнительные данные, как описано в 1.
  5. Позвоните finish(), чтобы завершить действие.
  6. В исходном методе действия будет вызван onActivityResult.Снова извлеките данные из Intent, как описано в 3.
1 голос
/ 14 ноября 2010

Мне проще разделить меню и тому подобное на отдельные действия (если вы не используете диалоги и т. Д.). Что касается хранения данных, вы можете сделать это несколькими способами:

  1. База данных
  2. StoredPreferences
  3. Дополнительные функции с putExtra / Bundle
  4. Создание подкласса приложения и сохранение там настроек

У каждого есть свои достоинства. 4 довольно просто, так как вам просто нужно указать имя класса приложения в манифесте и затем вызвать: MyAppClass app = (MyAppClass) getApplicationContext (); и затем вы можете использовать любые переменные в MyAppClass через приложение. 2 тоже просто.

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