1

我正在尝试编写一个小的 Android 应用程序来存储食谱作为练习。要添加新食谱,我正在尝试使用标签。共有三个选项卡,

  1. 原料
  2. 脚步
  3. 媒体

我希望“成分”有一个 ListView,“步骤”有一个 ListView,“媒体”有一个图片库。我将通过选项菜单中的一些选项添加新的成分、步骤和媒体。完成后,我想将所有内容写入 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>

所以所有的 TextView 都在同一个 FrameLayout 中,每个 TextView 只用于一个选项卡。我认为如果视图更复杂,例如嵌套在其他东西中的东西,这又嵌套在其他东西中,这会有点令人困惑。为每个选项卡使用不同的活动,我可以为每个选项卡指定不同的布局文件。

4

2 回答 2

4

我想知道是否应该为每个选项卡使用不同的活动或只使用不同的视图?

使用活动作为选项卡内容已被弃用。你仍然可以这样做,但如果你刚刚开始使用这个项目,那么使用 Views 会是一个更好的方法。

如果我使用不同的活动,是否很难在活动之间传递信息?

是也不是,但这取决于您的专业水平 - 在活动之间传递信息通常涉及使用意图(尽管还有其他方式)。尽管无论它们是独立的还是选项卡式环境的一部分都是一样的,但这并没有什么区别,但确实需要一些思考。

如果我使用不同的视图,这些视图是否都必须是同一个布局文件的一部分?

不,但您可能想在使用 TabActivity 开始时尝试该教程中的方法。

可以有不同的布局(对于任何类型的 Activity)并根据需要自己膨胀它们,但这是一个更复杂的主题。

于 2011-07-31T22:36:22.703 回答
1

我不确定哪个更好,但根据您关于在不同活动之间传递信息是否困难的问题,这很容易做到。

如果您有两个活动,活动 A 和活动 B,并且您想将信息从 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");

希望这可以帮助

于 2011-07-31T22:28:22.367 回答