Вкладки Android: действия или просмотры? - PullRequest
1 голос
/ 01 августа 2011

Я пытаюсь написать небольшое приложение для Android для хранения рецептов на практике. Чтобы добавить новый рецепт, я пытаюсь использовать вкладки. Есть три вкладки,

  1. Ингредиенты
  2. Шаги
  3. Media

Я бы хотел, чтобы у «Ingredients» был ListView, у «Steps» - ListView, а у «Media» - галерея изображений. Я собираюсь добавить новые ингредиенты, шаги и средства массовой информации через некоторые опции в меню параметров. Когда я закончу, я бы хотел записать все в базу данных SQLite.

Мне интересно, следует ли мне использовать разные действия или просто разные представления для каждой вкладки?

Если я буду использовать разные виды деятельности, трудно ли будет передавать информацию между ними?

Если я использую разные виды, все ли виды должны быть частью одного и того же файла макета? Например, учебник для TabWidgets делает следующее:

<FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView 
            android:id="@+id/textview1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is a tab" />
        <TextView 
            android:id="@+id/textview2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is another tab" />
        <TextView 
            android:id="@+id/textview3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is a third tab" />
</FrameLayout>

Таким образом, все TextViews находятся в одном и том же FrameLayout, причем каждый TextView используется только для одной вкладки. Я думаю, что это было бы немного запутанным, если бы мнения были более сложными, например, что-то вложенное во что-то другое, которое снова вложено во что-то другое. Используя разные действия для каждой вкладки, я могу указать разные файлы макета для каждой вкладки.

Ответы [ 2 ]

4 голосов
/ 01 августа 2011

Мне интересно, следует ли мне использовать разные действия или просто разные представления для каждой вкладки?

Использование действий в качестве вкладки устарело. Вы все еще можете сделать это, но если вы только начинаете с этим проектом, тогда лучше использовать Views, а не 1005 *.

Если я буду использовать разные виды деятельности, трудно ли будет передавать информацию между ними?

Да и нет, но это зависит от вашего уровня знаний - для передачи информации между Действиями обычно используется Интент (хотя есть и другие способы). Хотя это то же самое, независимо от того, являются ли они автономными или являются частью среды с вкладками, это не имеет никакого значения, но для этого нужно подумать.

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

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

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

1 голос
/ 01 августа 2011

Я не уверен, что лучше, но на основании вашего вопроса о том, трудно ли передавать информацию между различными действиями, довольно просто сделать.

Если у вас есть два действия - действие A и действие B, и вы хотите отправить информацию от A к B, тогда вы можете использовать следующее

Intent intent = new Intent(activityAClassName.this, activityBClassName.class);
intent.putExtra("keyName", "value");
startActivity(intent);

Затем получить значения из ActivityA в ActivityB и этот код в ActivityB

Bundle bundle = this.getIntent().getExtras();
string value = bundle.getString("keyName");

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

...