2014-02-21 13 views
0

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

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

Для этого я мог бы использовать два отдельных мероприятия. НО Я хочу, чтобы оба экрана имели доступ к некоторым переменным, которые я объявил. После прочтения действий, кажется, использование родительской и дочерней активности не является правильным решением, поскольку родительская активность может быть удалена из памяти, поэтому мои переменные будут потеряны.

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

ответ

1

Вот что Фрагменты для. См. the api guide или просто Google для учебника. Вы могли бы связываться между фрагментами с обратными вызовами, но вам необязательно, поскольку вы можете просто вызвать статические классы при нажатии кнопки. Таким образом, вам не нужно слишком много общаться. Общение довольно сложно описать, так как мы не знаем, что будут делать кнопки. Но все же: подумайте об использовании фрагментов. Они предназначены для этого, и есть тонна учебников, показывающих, как это сделать. Переходы будут более сильными, чем между действиями.

С помощью фрагментов у вас будет одно действие, в котором размещаются несколько фрагментов, в которых размещаются изображения и кнопки. Вы можете реализовать салфетки или onclick или все, что вы хотите использовать для переключения, а затем выполнить обратный вызов, возвращая данные с ним, если хотите. Благодаря этому обратному вызову вызывается соответствующая функция в вашей деятельности, где вы можете создать следующий фрагмент, добавить к нему данные и заменить на него старый фрагмент.
Было бы слишком сложно объяснить, что в глубине, потому что работа Фрагментов будет другим вопросом. Но это по сути то, что вы с ними делаете.

Если вы решили использовать «Действия», вы должны пойти с putExtra на намерение.

0

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

Intent i = new Intent(this, SecondActivity.class); i.putExtra("one", "someValue"); i.putExtra("two", "anotherValue"); startActivity(i);

+0

Итак, это лучший способ решить эту проблему? Одна из моих переменных - огромный массив. Не следует ли использовать собственный класс View для моего второго экрана? – Skullbox

+0

Используйте класс «singleton» для хранения массива и совместного использования этого способа, или, как вы говорите, используйте настраиваемый вид и анимируйте его в поле зрения. Как вы говорите, если ваш массив «огромный» (который вы не определили), передача его через «Intent», скорее всего, является неправильным решением. – Simon

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