我正在尝试编写一个小的Android应用程序来存储食谱作为练习。要添加新配方,我正在尝试使用标签。有三个选项卡,
我希望“Ingredients”有一个ListView,“Steps”有一个ListView,而“Media”有一个图库。我将通过选项菜单中的一些选项添加新的成分,步骤和媒体。完成后,我想将所有内容写入SQLite数据库。
我想知道我是否应该为每个标签使用不同的活动或只是不同的视图?
如果我使用不同的活动,是否很难在活动之间传递信息?
如果我使用不同的视图,那么视图是否必须属于同一个布局文件?例如,tutorial on 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>
因此所有TextView都在同一个FrameLayout中,每个TextView只用于一个选项卡。如果观点更复杂,我认为这会有点混乱,例如:嵌套在其他东西中的东西,它再次嵌套在其他东西中。对每个选项卡使用不同的活动,我可以为每个选项卡指定不同的布局文件。
答案 0 :(得分:4)
我想知道我是否应该为每个标签使用不同的活动或不同的视图?
使用活动作为标签内容已被弃用。您仍然可以这样做,但如果您刚刚开始使用此项目,那么使用视图将是一种更好的方法。
如果我使用不同的活动,是否很难在活动之间传递信息?
是和否,但这取决于您的专业水平 - 在活动之间传递信息通常涉及使用Intents(尽管还有其他方式)。虽然它们是相同的,无论它们是独立的还是标签环境的一部分都没有任何区别,但确实需要考虑一下。
如果我使用不同的视图,那么视图是否必须属于同一个布局文件?
没有,但是当您使用TabActivity开始时,您可能想要在该教程中尝试该方法。
可以有不同的布局(适用于任何类型的活动)并根据需要自己进行膨胀,但这是一个更复杂的主题。
答案 1 :(得分:1)
我不确定哪个更好,但根据您的问题,在不同活动之间传递信息是否难以实现。
如果您有两个活动,即activityA和activityB,并且您想要将信息从A发送到B,那么您可以使用以下
Intent intent = new Intent(activityAClassName.this, activityBClassName.class);
intent.putExtra("keyName", "value");
startActivity(intent);
然后从activityB中的activityA获取值,并将此代码转换为activityB
Bundle bundle = this.getIntent().getExtras();
string value = bundle.getString("keyName");
希望这会有所帮助