2016-10-25 5 views
0

Это будет мой первый проект в андроид-студии. У меня есть опыт Java и C/C++. Я все еще новичок, но когда речь заходит о разработке программы. Я никогда не разрабатывал приложение для Android.Как делиться данными между несколькими действиями?

Это приложение будет использоваться для отслеживания программы тренировки. Пользователь должен будет ввести свои 1 макс. Значения для каждого из следующих действий; скамейку, приседание, тягу. Я хочу, чтобы приложение использовало эти входы, чтобы основывать программу тренировок на них. Это приведет к совместному использованию и управлению этими данными.

Каков наилучший способ взять пользовательский ввод, сохранить его (значит, хранить его где-то и оставить без изменений, даже когда приложение завершается), и иметь несколько видов доступа к нему для отображения? Приложение будет запрашивать у пользователя только один раз. Если пользователь хочет изменить ввод, это можно сделать в настройках.

+3

Вы можете сохранить свои данные в 'SharedPreferences' или' database'. то во всех действиях вы можете получить к нему доступ. –

+0

Все написано в документе: https://developer.android.com/guide/topics/data/data-storage.html –

ответ

0

Да, Intents являются способом передачи информации между деятельностью, но, как вы скоро обнаружите, что они не предназначены для хранения целых объектов данных и сохранить какие-то упорство , попытка реализовать передачу данных станет вашим кошмаром.

Посмотрите на некоторые рамки персистенции (пусть некоторые SQLite обертки или лично мне нравится realm.io, поскольку они обеспечивают действительно интересные функции, как живые авто-обновление объектов, он построен на их C++ двигателя, и это очень прост в использовании) ... После того, как вы храните свои данные на каком-то уровне данных, вы только передаете идентификационные данные для своих объектов с помощью намерений и запроса для них в принимающей деятельности ...

Таким образом, вы сохраняете свои модели, стойкой по всему приложению, не имеют проблем, связанных с распространением изменений объекта на исходную активность и потерять ад, связанный с Parcelables (с помощью которого можно сериализовать вас r объект, чтобы сохранить его в намерении)

Счастливое кодирование!

+0

Это имеет наибольший смысл. Благодарю. – Hermes

1

Попробуйте с помощью Intents

На первом занятии

Intent intent = new Intent(Activity_FROM.this, Activity_TO.class); 

intent.putExtra("KEY1", value); 

intent.putExtra("KEY2", "a value"); 

startActivity(intent); 

On second activity 

Bundle bundle = getIntent().getExtras(); 

int value = bundle.getInt("KEY1"); 

String value2 = bundle.getString("KEY2"); 

Чтобы его более четче, лучше понять основные концепции андроида рамок и терминологий. Когда это будет сделано, вы можете легко понять поток процесса.

Визит www.vogella.com

0

Намерения - это один из способов передачи данных из одного вида деятельности в другой. Однако вам нужно передавать его каждый раз, когда вы меняетесь от одного к другому ... Другим способом, более простым и эффективным, является использование singleton: class где вы можете писать и получать доступ к любой деятельности, создавая для нее экземпляр. просто взгляните на это https://gist.github.com/Akayh/5566992

4

Когда вы вызываете Intent для перехода от одного действия к другому действию, вы можете поместить некоторые данные или значения, которые вам нужны для второй активности или дальнейшего использования. Вы должны сделать то же самое для всех вызовов активности, и, наконец, вы можете использовать их там, где вам нужны данные.

intentObject.putExtra("KEY", value); 

Bundle bundle = getIntent().getExtras(); 

int value = bundle.getInt("KEY"); 
or 
String value = bundle.getString("KEY"); 
or 
DataObject dataObject = bundle.getString("KEY"); 

Вы можете поместить объект данных и получить объект данных также с помощью Gson.

Смежные вопросы