Поделитесь ценностью во всех видах моей деятельности - PullRequest
0 голосов
/ 27 января 2012

Этот вопрос больше похож на обсуждение того, как вы, ребята, это сделаете.

Я занимаюсь разработкой приложения с созданием аватара, но это создание происходит в двух разных видах деятельности.

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

Поскольку представления о волосах и т. Д. Изменяютсяесли пользователь является мужчиной или женщиной, как бы вы реализовали способ передачи значения пола во все представления?

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

Я думаю, что использование SharedPreferences болееэлегантный способ сделать это, но мне интересно, нет ли другого лучшего и более элегантного способа сделать это.

Кто-нибудь думал о других реализациях?

Ответы [ 4 ]

2 голосов
/ 27 января 2012

Если это только небольшая информация, такая как «пол», я не вижу большого вреда, используя переменную «Статический» (Конечно, статическая переменная станет нулевой, если ваше приложение вылетает, когда оно находится в фоновом режиме).

SharedPreference сработает, если вы хотите, чтобы информация была постоянной (но я не вижу, что вам это нужно).

Еще один вариант - вы можете расширить класс application для хранения статических данных между действиями.

1 голос
/ 27 января 2012

Вы можете передать пол следующему занятию с начальным заданием.Пример:

Intent intent = new Intent(this, NEXT_ACTIVITY.class)
intent.putExtra("gender", genderVariable)
startActivity(intent);

И получить значение в классе NEXT_ACTIVITY для onCreate () следующим образом:

String genderVariable = ""
Bundle parms = getIntent().getExtras()
if (parms != null) genderVariable = parms.getString("gender")

Затем передайте пол для всех ваших представлений и сохраните гендерную переменную в SharedPreferences или onSavedInstanceStateрасслоение.Я предпочитаю onSavedInstanceState.

Надеюсь, это поможет.

0 голосов
/ 27 января 2012

Использование SharedPreferences было бы лучшим способом обмена некоторыми глобальными значениями в приложении.

0 голосов
/ 27 января 2012

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

  1. Для списков или хэш-карт было бы полезно использовать одноэлементный класс.
  2. Использование статического класса поможет, но можетутечка памяти.Вы должны быть очень осторожны и всегда проверяйте, используя logcat, MAT, прежде чем выпускать ваше приложение.
  3. Использование настроек или базы данных.
  4. Передача данных в качестве Intent extra (может быть отправлено при необходимости).
...